Как загрузить dmg файл для нотариального заверения в xcode - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь загрузить наше существующее приложение в яблоко для нотариального заверения.

Согласно документу https://help.apple.com/xcode/mac/current/#/dev88332a81e Я должен открыть приложение организатора архива xcode.

У нас есть файл dmg, сгенерированный с нашего сервера сборки jenkins. Как открыть файл dmg в xcode для загрузки?

Кроме того, есть ли инструмент командной строки, который я могу использовать для нотариального заверения?

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете сделать это из командной строки.

Сначала вам нужно будет извлечь .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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...