#macos #installation #package #mac-app-store #productbuild
#macos #установка #пакет #mac-app-store #сборка продукта
Вопрос:
Документ 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, откуда он должен взяться, что должно быть внутри него и какой инструмент следует использовать для создания этого списка?
Комментарии:
1. Примечания: Сертификаты действительны и находятся в связке ключей. Приложение в каталоге сборки релиза загружает тестовую квитанцию из App Store и запускается корректно.
2. Ваша ссылка на документацию Apple не работает…
Ответ №1:
Из документа 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
Ответ №2:
Если вы запустите 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 просто создайте новый список и добавьте пары ключ / значение в соответствии с вашими требованиями и возможными значениями, перечисленными в файле man.