Подписание и архивирование приложения Mac с помощью buildbuild без использования xcode для распространения приложения вне Mac App Store
Я новичок в разработке приложений для MAC и работаю над проектом, который использует Zoom Mac SDK, но этот SDK не поддерживает архив с XCode, поэтому мне нужно сделать архив с другими инструментами, предложенными центром поддержки масштабирования. Согласно их ответу приложение может быть заархивировано с помощью pkgbuild/pkgutil/productbuild, но я не знаю точных шагов по созданию архива /pkg/dmg для моего Mac App.
Также, пожалуйста, дайте мне знать, какое расширение файла мне нужно создать для загрузки моего приложения с веб-сайта для пользователей.
Я использую сертификаты "Developer ID Application" и "Developer ID Installer" для подписи моей сборки, но не знаю, как создать сборку без использования XCode, потому что с XCode я получаю ошибку для стороннего фреймворка, так как "объект кода не подписан в все".
Ценю вашу большую помощь.
0 ответов
Во-первых, вам нужно pkgbuild AND productbuild, чтобы сделать что-то продуктивное.
Здесь вы указываете корневую папку, идентификатор, версию, место установки, вывески и сценарии после установки.
Например:
pkgbuild --root "${ROOTFOLDER}" \
--identifier "${IDENTIFIER}" \
--version ${VERSION} \
--install-location "/" \
--sign "${IDENTITY}" \
--scripts '${SCRIPT}' \
"${PKGNAME}.pkg"
В вашем ${ROOTFOLDER} вы можете управлять файлами / папками, как если бы вы были на вашем локальном компьютере после "/". Например, если вы хотите поместить "xy.app" в /Applications, вы должны создать внутри вашей папки ${ROOTFOLDER} "Applications" и поместить туда xy.app. Когда вы установите пакет, внутри вашей папки "/Applications" на вашем компьютере будет xy.app. Вы также можете скопировать файлы в /Library или что-то еще, просто создав папку внутри указанной корневой папки.
Когда вы хотите, чтобы были установлены какие-либо файлы.pkg / .dmg или.sdk, вы должны создать папку сценариев, указанную в --scripts ${SCRIPTSFOLDER}, и внутри нее вы создадите файл "postinstall".
Файл postinstall будет содержать материал, который будет выполняться с вашим пакетом, например, установить другой файл.pkg или.sdk, который будет находиться внутри вашего ${ROOTFOLDER}.
Поэтому поместите несколько файлов.pkg'в ${ROOTFOLDER}/Packages, например. В вашей корневой папке будет создана папка / Packages. Значит, в вашем постинсталле вы можете сказать:
sudo installer -pkg /Packages/anotherPackageOrApp.pkg target /
После того, как вы это сделали, вы получили простой пакет. Тем не менее, вы не хотите только этого.
С помощью productbuild вы можете создать дистрибутивный файл: он включает в себя всю конфигурацию архива продукта, включая лицензию на продукт, файл README продукта, список пакетов компонентов, ограничения (например, минимальную версию ОС).
Идите вперед и сделайте следующее:
productbuild --synthesize --package "${PKGNAME}.pkg" distribution.dist
Теперь, когда вы получили дистрибутивный дистрибутив из вашего пакета, вы можете отредактировать его так, как хотите. Создайте это вместе:
productbuild --distribution distribution.dist --scripts "${SCRIPTS}" --sign "${IDENTITY}" --package-path "${PKGNAME}.pkg" --resources . --version ${VERSION} "${PKGNAME}_New.pkg"
Теперь вы получили ваш последний подписанный пакет. Содержит каталоги ваших.sdk,.pkg и.dmg, которые можно установить через файл postinstall или просто скопировать в каталог на компьютере, на который будет установлен pkg.
поздравил