Нужно ли нотариально заверять фреймворки (.framework), dlib-файлы и двоичные файлы?
Читая документы Apple о нотариальном заверении, неясно, нужно ли нам нотариально заверять двоичные файлы (например, демон запуска), фреймворки или библиотеки.
Нужно ли нотариально заверить это?
Документы Apple можно найти здесь. Нотариальное заверение вашего приложения перед распространением
1 ответ
Отвечая на мой вопрос здесь, может быть, это кому-то поможет.
Это может быть сделано автоматически Xcode; однако, если вам нужно настроить это вручную (возможно, у вас есть Continuous Integration или w/e), это может помочь.
По словам Apple:
Нотариальное заверение дает пользователям больше уверенности в том, что распространяемое вами программное обеспечение с подписью Developer ID было проверено Apple на наличие вредоносных компонентов.
Если проблем нет, нотариальная служба генерирует билет для вас, чтобы прикрепить к вашему программному обеспечению.
Нотариальное заверение потребуется для бинарных файлов, фреймворков, dylibs, приложений в будущих выпусках macOS.
Для этого необходимо выполнить несколько шагов:
- добавлять
--timestamp
на другие флаги подписи кода в настройках сборки для каждой цели, которая создает двоичный файл, инфраструктуру, dylib или приложение - добавлять
--options=runtime
на другие флаги подписи кода (для Xcode < 10.2) или включите усиленную среду выполнения (для Xcode >= 10.2) в настройках сборки - код подписывает все (dylibs, frameworks, binaries и.apps.)
Далее нотариальное заверение может быть сделано следующим образом:
- включите каждый файл, который должен быть заверен в файл .zip (другие поддерживаемые форматы: .dmg, .pkg)
- загрузить поддерживаемый формат в службу нотариального удостоверения Apple: Пример:
xcrun altool --notarize-app -f <path_to_zip_dmg_or_pkg> --primary-bundle-id <bundle_identifier> -u <apple_id> -p @keychain:"Application Loader: <apple_id>"
---> возвращает UUID, который также будет отправлен на почтовый адрес для<apple_id>
после нотариального заверения - проверьте статус и журналы ошибок (если есть) с
xcrun altool --notarization-info <UUID_from_previous_step> -u <apple_id> -p @keychain:"Application Loader: <apple_id>"
- журналы ошибок могут быть загружены с
curl LogFileURL
где LogFileURL возвращается в ответе json предыдущей команды - если все в порядке, просто прикрепите нотариальное заверение с помощью команды
xcrun stapler staple -v <path_to_app_dmg_or_pkg>
; только приложение, DMG и ПКГ могут быть сшиты.
Другие полезные команды:
- использование
codesign -dvvv <path_to_file>
чтобы проверить, выполнено ли кодирование, также проверьте значение метки времени - использование
spctl -a -v <path_to_file>
проверить правильность сшивания