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.