СпонсорствоВойтиОтправить

← Все инструменты

Разбор entitlements

Вставьте то, что печатает codesign, или ваш файл .entitlements. Он читается прямо на этой странице, и ничего никуда не отправляется.

Разбор 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, исключение для песочницы, выключенная песочница или тестовая настройка. Допустимо, но оставляйте это, только если приложению нужно.
OKApp 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 всё равно нужен для нотаризации.

Отправляется ли то, что я вставляю, куда-нибудь?

Нет. Текст читается на этой странице, и ничего не отправляется.

Похожее