СпонсорУвійтиПодати

← Усі інструменти

Пояснення entitlements

Вставте те, що друкує codesign, або ваш файл .entitlements. Його читають просто тут, на цій сторінці, і нічого нікуди не надсилається.

Пояснення entitlements

Спробуйте приклад:

Що робить

Entitlements це дозволи, з якими підписано ваш застосунок для Mac: чи працює він в App Sandbox, до яких папок і пристроїв має доступ, які захисти hardened runtime вимикає і які сервіси Apple використовує. Вони лежать у вашому файлі .entitlements і потрапляють усередину підпису. Цей інструмент читає текст, який ви вставляєте, знаходить кожен entitlement із його значенням і простими словами каже, що він дозволяє. Спершу він ставить ті, що зупинять нотаризацію, потім ті, про які спитає 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 застосунку?

Запустіть у Terminal codesign -d --entitlements - і додайте шлях до застосунку. Додайте --xml, щоб отримати той самий список як property list.

Чому нотаризація відхилила мій застосунок через get-task-allow?

Цей entitlement дозволяє підключати налагоджувачі, і Xcode додає його до збірок Debug. Заархівуйте збірку Release або приберіть його з entitlements, якими підписуєте, і надішліть знову.

Чи потрібен застосунку для Mac App Sandbox?

Лише для Mac App Store, який цього вимагає. Застосунок, який ви продаєте самі через Developer ID, може працювати без цього, хоча для нотаризації йому все одно потрібен hardened runtime.

Чи надсилається кудись те, що я вставляю?

Ні. Текст читається на цій сторінці, і нічого не надсилається.

Схожі