Mac App Store
Документ Apple по отправке приложения в MacApp 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: error: не найден список определения продукта в "product_definition.plist".
Что это за product_definition.plist, откуда он должен быть, что должно быть внутри него и какой инструмент должен использоваться для создания этого списка?
2 ответа
В документе 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
Если вы запускаете 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.