Mac app store productbuild

Apple документ о представлении приложения в Mac App store содержит этот пример использования команды productbuild из in/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: ошибка: нет определения продукта plist найдено на "product_definition.файл plist".

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

2 ответов


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

Если у вас есть конкретные требования, вам не нужен файл описания. Если вам это нужно, man-страница 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

Если вы запускаете 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.