Разбор entitlements
Вставьте то, что печатает codesign, или ваш файл .entitlements. Он читается прямо на этой странице, и ничего никуда не отправляется.
Попробуйте пример:
Что делает
Entitlements это разрешения, с которыми подписано ваше приложение для Mac: работает ли оно в App Sandbox, к каким папкам и устройствам имеет доступ, какие защиты hardened runtime отключает и какие сервисы Apple использует. Они лежат в вашем файле .entitlements и попадают внутрь подписи. Этот инструмент читает вставленный вами текст, находит каждое разрешение и его значение и простыми словами говорит, что оно позволяет. Сначала он ставит те, что остановят нотаризацию, потом те, о которых спросит App Review или внимательный пользователь, а затем обычные.
Команды для запуска
codesign -d --entitlements - YourApp.app codesign -d --entitlements - --xml YourApp.app
Запускайте их на сборке, которую выпускаете. Debug-сборка из Xcode обычно содержит com.apple.security.get-task-allow, а Release-сборка нет. Чтобы проверить помощник или расширение, укажите в команде их пакет.
Что означает каждый результат
| Отметка | Что это значит |
|---|---|
| Исправить | Нотаризация это отклонит, или macOS не запустит стороннее приложение с этим. |
| Вид | Исключение для hardened runtime, исключение для песочницы, выключенная песочница или тестовая настройка. Допустимо, но оставляйте это, только если приложению нужно. |
| OK | App Sandbox включена. |
| Заметка | Обычное разрешение. Проверьте, что приложение действительно его использует. |
Источники: Apple Developer, Entitlements, App Sandbox, Hardened Runtime и Resolving common notarization issues, все прочитаны 6 ноября 2026 г..
Как это работает
Это несколько простых текстовых правил, которые работают на этой странице. Он читает XML, который содержит файл .entitlements или codesign --xml, и строки в скобках [Key] и [Value], которые codesign печатает в свежих версиях macOS. Если вставить только имена ключей, он объяснит их. Он знает обычных entitlements: 50. Всё остальное он помечает как отсутствующее в его списке, а не угадывает. Он не может определить, включён ли hardened runtime, потому что это флаг подписи, а не entitlement: ищите flags=0x10000(runtime) в выводе codesign -dv.
Вопросы
Что такое entitlements на Mac?
Это разрешения, записанные в подпись кода приложения. Они говорят, работает ли приложение в App Sandbox, какие файлы, устройства и сервисы Apple оно может использовать и какие защиты hardened runtime оно отключает.
Как посмотреть entitlements приложения?
Выполните в Терминале codesign -d --entitlements - и путь к приложению. Добавьте --xml, чтобы получить тот же список в виде property list.
Почему нотаризация отклонила моё приложение из-за get-task-allow?
Это разрешение позволяет подключать отладчики, и Xcode добавляет его в Debug-сборки. Заархивируйте Release-сборку или уберите его из entitlements, которыми подписываете, и отправьте снова.
Нужна ли приложению для Mac App Sandbox?
Только для Mac App Store, где это обязательно. Приложение, которое вы продаёте сами с Developer ID, может работать без неё, хотя hardened runtime всё равно нужен для нотаризации.
Отправляется ли то, что я вставляю, куда-нибудь?
Нет. Текст читается на этой странице, и ничего не отправляется.