2013-07-03 2 views
0

Итак, у меня есть 100 достижений для загрузки, вместо использования веб-сайта, я думал, что быстрее создать файл metadata.xml и использовать iTMSTransporter для загрузки данных. К сожалению, одна загвоздка - контрольная сумма MD5, которая должна быть рассчитана для каждого файла изображения, или Apple отвергает весь пакет itmsp. Требование этого почти недействительно всей «легкости» использования iTMSTransporter.iTMSTransporter metadata.xml утилита md5 ios

Есть ли утилита для анализа файла метаданных и обновления с помощью контрольных сумм? Или, возможно, что-то, что генерирует файл метаданных и делает это?

ответ

2

Существует программа командной строки, которая будет генерировать файл metadata.xml и вычислять контрольные суммы файлов. Она требует, чтобы поместить метаданные в YAML файл, который он превращается в metadata.xml: https://github.com/colinhumber/itunes_transporter_generator

Вы можете использовать этот скрипт для обновления каталога, содержащего metadata.xml файла (или файлов) и активов:

require "rexml/document" 
require "digest" 

def set_checksum(path) 
    xml = File.read(path) 
    doc = Document.new(xml) 
    doc.get_elements("//achievement//file_name").each do |e| 
    next unless e.text =~ /\S/ 

    file = File.join($source, e.text.strip) 
    puts "Computing checksum for #{file}" 

    $md5.file(file) 
    checksum = $md5.hexdigest! 

    node = e.parent.elements["checksum"] 
    node = Element.new("checksum", e.parent) unless node 
    node.text = checksum 
    node.add_attribute("type", "md5") 
    end 

    puts "Saving update file" 
    File.write(path, doc.to_s) 
end 

include REXML 

$source = ARGV.shift || Dir.pwd 
$md5 = Digest::MD5.new 
Dir["#$source/*.xml"].each do |path| 
    puts "Processing #{path}" 
    set_checksum(path) 
end 

Используйте его следующим образом:

> ruby script.rb 

или

> ruby script.rb /path/to/metadata/directory 
+0

Хотелось бы, чтобы я видел это, прежде чем я написал собственное решение! – Rasterman