Mac App Store - PullRequest
       46

Mac App Store

8 голосов
/ 07 ноября 2011

Документ Apple по отправке приложения в Mac App Store содержит этот пример использования команды productbuild из /Developer/usr/bin/.

.
productbuild \
--component build/Release/Sample.app /Applications \
--sign "3rd Party Mac Developer Installer: Name1 Name2" \
--product product_definition.plist Sample.pkg

Когда я запускаю эту команду в моем приложении-образце, я получаю сообщение об ошибке:

productbuild: ошибка: лист определения продукта не найден в "Product_definition.plist".

Что это за product_definition.plist, откуда он должен быть, что должно быть внутри него и какой инструмент должен использоваться для создания этого списка?

Ответы [ 2 ]

11 голосов
/ 15 ноября 2011

Из документа Apple, на который вы ссылались : «Вы должны указать один компонент, подпись, и (необязательно) файл определения продукта

у вас есть конкретные требования, вам не нужен файл определения продукта.Если вам это нужно, на справочной странице productbuild есть много информации.Это просто словарь plist, , как в этом примере :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>gl-renderer</key>
    <string>( 'GL_APPLE_float_pixels' IN extensions )</string>
</dict>
</plist>

Я убедился, что Xcode не использует файл определения продукта, когда вы разделяете архивированное приложение как пакет.Это фактическая командная строка:

/usr/bin/productbuild --component <path-to-xcarchive>/Cool.app 
                      /Applications 
                      <tmp-path>/package.pkg 
                      --sign 3rd Party Mac Developer Installer
3 голосов
/ 12 ноября 2011

Если вы запускаете man productbuild и ищете раздел СПИСОК ОПРЕДЕЛЕНИЙ ПРОДУКТА, который начинается с

PRODUCT DEFINITION PROPERTY LIST
 When you use productbuild to synthesize a distribution (e.g. with the --component option), you can specify additional parameters and
 requirements in a separate property list file, specified with the --product option. At the top level, this property list is a dictio-
 nary, with the following keys:

 Key                       Description
 os                        Minimum allowable OS versions (array of strings)
 arch                      Supported architectures (array of strings)
 ram                       Minimum required RAM in gigabytes (real)
 bundle                    Specific bundles that must exist on the system (array of dictionaries)
 all-bundles               Are all of the bundles specified required? (Boolean)
 gl-renderer               Required OpenGL capabilities (string)
 cl-device                 Required OpenCL capabilities (string)
 single-graphics-device    Must OpenGL and OpenCL requirements be met by a single device? (Boolean)
 home                      Should installation be allowed in user home directory? (Boolean)

Дается много дополнительной информации, которую вы сможете генерировать с помощью XCode или текстового редактора.В XCode просто создайте новый plist и добавьте пары ключ / значение в соответствии с вашими требованиями и возможными значениями, перечисленными в файле man.

...