Entitlements paaiškinimas
Įklijuok, ką spausdina codesign, arba savo .entitlements failą. Jis skaitomas čia pat šiame puslapyje ir niekur nesiunčiamas.
Išbandyk pavyzdį:
Ką daro
Entitlements yra leidimai, kuriais pasirašyta tavo Mac programa: ar ji veikia App Sandbox, prie kokių aplankų ir įrenginių gali prieiti, kurias hardened runtime apsaugas išjungia ir kokias Apple paslaugas naudoja. Jie yra tavo .entitlements faile ir patenka į parašą. Šis įrankis skaito tavo įklijuotą tekstą, randa kiekvieną entitlement ir jo reikšmę ir paprastais žodžiais pasako, ką jis leidžia. Pirma deda tuos, kurie sustabdys notarizaciją, paskui tuos, apie kuriuos paklaus App Review ar atidus naudotojas, paskui įprastus.
Komandos paleisti
codesign -d --entitlements - YourApp.app codesign -d --entitlements - --xml YourApp.app
Paleisk juos su versija, kurią išleidi. Debug versija iš Xcode paprastai turi com.apple.security.get-task-allow, o Release versija neturi. Norėdamas patikrinti pagalbinį įrankį ar plėtinį, nukreipk komandą į tą paketą.
Ką reiškia kiekvienas rezultatas
| Žyma | Ką tai reiškia |
|---|---|
| Pataisyti | Notarizacija ją atmeta arba macOS nepaleis trečiosios šalies programos su ja. |
| Išvaizda | Hardened runtime išimtis, sandbox išimtis, išjungtas sandbox arba bandymo nustatymas. Leidžiama, bet palik tik jei programai reikia. |
| Gerai | App Sandbox įjungtas. |
| Pastaba | Įprastas leidimas. Patikrink, ar programa tikrai jį naudoja. |
Šaltiniai: Apple Developer, Entitlements, App Sandbox, Hardened Runtime ir Resolving common notarization issues, visi skaityti 2026 m. lapkričio 6 d..
Kaip tai veikia
Tai kelios paprastos teksto taisyklės, veikiančios šiame puslapyje. Jis skaito XML, kurį turi .entitlements failas ar codesign --xml, ir eilutes su skliaustuose esančiais [Key] ir [Value], kurias codesign spausdina naujesnėje macOS. Jei įklijuoji tik raktų pavadinimus, jis paaiškina juos. Jis žino įprastų entitlements: 50. Visa kita pažymi kaip nesančią sąraše, o ne spėlioja. Jis negali pasakyti, ar hardened runtime įjungtas, nes tai pasirašymo vėliavėlė, o ne entitlement: ieškok flags=0x10000(runtime) tame, ką spausdina codesign -dv.
Klausimai
Kas yra entitlements Mac?
Tai leidimai, įrašyti į programos kodo parašą. Jie nurodo, ar programa veikia App Sandbox, kokius failus, įrenginius ir Apple paslaugas gali naudoti ir kurias hardened runtime apsaugas išjungia.
Kaip pamatyti programos entitlements?
Terminale paleisk codesign -d --entitlements - ir po jo programos kelią. Pridėk --xml, kad gautum tą patį sąrašą kaip property list.
Kodėl mano programą notarizacija atmetė dėl get-task-allow?
Šis entitlement leidžia derintuvams prisijungti, o Xcode jį prideda prie Debug versijų. Archyvuok Release versiją arba pašalink jį iš entitlements, kuriais pasirašai, ir pateik iš naujo.
Ar Mac programai reikia App Sandbox?
Tik Mac App Store, kuri to reikalauja. Programa, kurią parduodi pats su Developer ID, gali veikti ir be jo, nors notarizacijai vis tiek reikia hardened runtime.
Ar tai, ką įklijuoju, kur nors siunčiama?
Ne. Tekstas skaitomas šiame puslapyje ir niekas nesiunčiama.