Вы можете сделать это из командной строки.
Сначала вам нужно будет извлечь .app из вашего .dmg и отменить его, удалив право com.apple.security.get-task-allow
в процессе (это добавляется автоматически при сборке для поддержки отладки и обычно удаляется архивированием - службой нотариального заверения) однако не примет пакет с таким правом, поэтому вы должны удалить его).
Используемый вами файл .entitlements может быть пустым.
Обратите внимание также на использование --options runtime
, которое указывает, что ваше приложение было создано с усиленной средой выполнения, а также является обязательным.
codesign -f -s "Developer ID Application: Name (ID)" --entitlements my-entitlments.entitlements --options runtime MyApp.app
Теперь вам нужно упаковать ваш .app обратно в .dmg и отправить в отставку:
(здесь я тоже использую флаг --options runtime
, хотя не уверен, если это необходимо)
codesign -s "Developer ID Application: Name (ID)" MyApp.dmg --options runtime
Затем используйте altool
для отправки вашего .dmg:
(имя пользователя и пароль должны быть кем-то из команды macOS на портале для разработчиков)
xcrun altool --notarize-app -f MyApp.dmg --primary-bundle-id my-app.myapp -u username -p password
Если загрузка успешно завершена, вы получите токен:
RequestUUID = 28fad4c5-68b3-4dbf-a0d4-fbde8e6a078f
Затем вы можете проверить статус с помощью altool
, используя этот токен:
xcrun altool --notarization-info 28fad4c5-68b3-4dbf-a0d4-fbde8e6a078f -u username -p password
В конце концов, он либо преуспеет, либо провалится. Просто продолжай проверять. Проверьте поле «Статус» ответа, которое должно быть «успех». В ответ также будет включен файл журнала, который можно использовать для устранения ошибок.
Предполагая, что это успешно, вам нужно прикрепить нотариальное заверение к приложению:
xcrun stapler staple MyApp.dmg
А затем подтвердите с помощью spctl
:
spctl -a -v MyApp.app
MyApp.app: принято
source = Нотариально заверенный идентификатор разработчика
Вы также можете применить флаг карантина к вашему .app и попытаться запустить его, вы увидите новое диалоговое окно Gatekeeper:
xattr -w com.apple.quarantine MyApp.app