رعايةتسجيل الدخولأرسِل

← كل الأدوات

شرح الأذونات

الصق ما يطبعه 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، أو استثناء من sandbox، أو sandbox معطّل، أو إعداد اختبار. مسموح، لكن أبقه فقط إن احتاجه التطبيق.
سليمApp Sandbox مفعّل.
ملاحظةإذن عادي. تحقق من أن التطبيق يستخدمه فعلًا.

المصادر: Apple Developer، Entitlements، وApp Sandbox، وHardened Runtime، وResolving common notarization issues، وكلها قُرئت في 6 نوفمبر 2026.

كيف يعمل

هي بضع قواعد نصية بسيطة تعمل على هذه الصفحة. تقرأ ملف XML الذي يحتويه ملف .entitlements أو codesign --xml، وأسطر [Key] و[Value] بين الأقواس التي يطبعها codesign في macOS الحديث. وإذا لصقت أسماء المفاتيح فقط فإنها تشرحها. وعدد الأذونات الشائعة التي تعرفها: 50. وتعلّم أي شيء آخر بأنه ليس في قائمتها بدل أن تخمّن. ولا تستطيع معرفة ما إذا كان hardened runtime مفعّلًا، لأنه علم توقيع لا إذن: ابحث عن flags=0x10000(runtime) في ما يطبعه codesign -dv.

الأسئلة

ما الأذونات (entitlements) في Mac؟

هي صلاحيات مكتوبة في توقيع شيفرة التطبيق. تقول هل يعمل التطبيق في App Sandbox، وأي ملفات وأجهزة وخدمات Apple يستطيع استخدامها، وأي حمايات من hardened runtime يعطّلها.

كيف أرى أذونات تطبيق ما؟

شغّل codesign -d --entitlements - متبوعًا بمسار التطبيق في Terminal. أضف --xml للحصول على القائمة نفسها بصيغة property list.

لماذا رفض التوثيق تطبيقي بسبب get-task-allow؟

يتيح هذا الإذن للمنقّحات (debuggers) الاتصال، ويضيفه Xcode إلى بناءات Debug. أرشِف بناء Release، أو أزله من الأذونات التي توقّع بها، ثم أرسل مجددًا.

هل يحتاج تطبيق Mac إلى App Sandbox؟

لـ Mac App Store فقط، فهو يشترطه. أما التطبيق الذي تبيعه بنفسك بـ Developer ID فيمكن أن يعمل من دونه، لكنه يظل يحتاج hardened runtime للتوثيق.

هل يُرسل ما ألصقه إلى أي مكان؟

لا. يُقرأ النص على هذه الصفحة ولا يُرسل أي شيء.

ذات صلة