Подтверждение подлинности указывает на то, что подписанное разработчиком приложение, которое вы распространяете, было проверено компанией Apple на отсутствие вредоносных компонентов. Более подробные сведения о правилах и требованиях для подтверждения подлинности Apple см. в разделе Подтверждение подлинности ПО для macOS перед распространением.
В целях соблюдения требований Apple для подтверждения подлинности в продукте InDesign 2020 был включен режим hardened runtime entitlement, позволяющий загружать в InDesign сторонние модули без необходимости подписывать их код. Однако разработчики модулей обычно распространяют их через программы установки (.pkg или .dmg). Функция Apple Gatekeeper в macOS автоматически помещает в карантин все двоичные файлы, подлинность которых не была подтверждена, поэтому запустить программы установки модулей не удастся. Дополнительные сведения приведены в разделе InDesign и macOS 10.15 (Catalina). Таким образом, возникает необходимость в подтверждении подлинности программы установки и двоичные файлы модулей, несмотря на то что InDesign не требует наличия подтверждения или подписи кода модуля.
Требования подтверждения подлинности
- Учетная запись разработчика Apple
- Xcode 10 или более новая версия
- Пароль приложения. Ознакомьтесь с инструкциями по его созданию.
Процесс создания сертификата
- Запросите сертификат (меню Связки ключей > Помощник сертификации > Запрос сертификата у бюро сертификации)
- Сохраните файл .certSigningRequest на диск.
- Войдите в портал Apple Developer.
- Выберите Сертификаты, идентификаторы и профили.
- Выберите Developer ID Application, чтобы создать новый сертификат.
- Отправьте файл .certSigningRequest из шага 1 и завершите процесс. Скачайте результирующий файл .cer на диск.
- Выберите Developer ID Installer и повторите шаги 4-6.
- Отправьте тот же файл .certSigningRequest из шага 1 и завершите процесс. Скачайте результирующий файл .cer на диск.
- Дважды щелкните на каждом из сертификатов .cer, которые были созданы на шагах 6 и 8, чтобы импортировать их в цепочку сертификатов.
Действия по подтверждению подлинности для файлов .pkg и .dmg
В данном примере используется модуль BasicDialog из SDK.
# подпишите код .InDesignPlugin
codesign --sign "Developer ID Application: <имя разработчика>" --verbose=4 --deep --force --strict BasicDialog.InDesignPlugin # проверьте подписание кода
codesign -dv --verbose=4 BasicDialog.InDesignPlugin - # создайте файл .pkg или .dmg, добавив подписанный .InDesignPlugin в пакет или программу установки
# подпишите программы установки (.dmg или .pkg)
productsign --sign "Developer ID Installer: <имя разработчика>" ./BasicDialog.pkg ./BasicDialogSigned.pkg # проверьте подписание кода
pkgutil --check-signature BasicDialogSigned.pkg # отправьте файл на подтверждение подлинности
xcrun altool --notarize-app --primary-bundle-id "com.demo.plugin" --username "your-apple-id@xyz.com" --password "xxxx-xxxx-xxxx-xxxx" --file BasicDialogSigned.pkg # состояние подтверждения можно проверять в сети (UID запроса возвращался на шаге 6)
xcrun altool --notarization-info <UID запроса> --username "your-apple-id@xyz.com" --password "xxxx-xxxx-xxxx-xxxx" # скрепите подтвержденный файл для использования в автономном режиме
xcrun stapler staple BasicDialogSigned.pkg # проверьте, что операция прошла успешно
stapler validate --verbose BasicDialogSigned.pkg