macOS companion app

أذونات macOS

منح أذونات macOS هشّة. يربط TCC منح الإذن بتوقيع كود التطبيق ومعرّف الحزمة والمسار على القرص. إذا تغيّر أي من ذلك، يعامل macOS التطبيق كأنه جديد وقد يسقط المطالبات أو يخفيها.

متطلبات الأذونات المستقرة

  • المسار نفسه: شغّل التطبيق من موقع ثابت (بالنسبة إلى OpenClaw، dist/OpenClaw.app).
  • معرّف الحزمة نفسه: تغيير معرّف الحزمة ينشئ هوية أذونات جديدة.
  • تطبيق موقّع: لا تحتفظ البُنى غير الموقّعة أو الموقّعة بتوقيع ad-hoc بالأذونات.
  • توقيع متّسق: استخدم شهادة Apple Development أو Developer ID حقيقية بحيث يبقى التوقيع مستقرًا عبر عمليات إعادة البناء.

تنشئ توقيعات ad-hoc هوية جديدة في كل بناء. سينسى macOS المنح السابقة، وقد تختفي المطالبات بالكامل إلى أن تُمسح الإدخالات القديمة.

منح إمكانية الوصول لبيئات تشغيل Node وCLI

فضّل منح إمكانية الوصول إلى OpenClaw.app أو Peekaboo.app أو مساعد موقّع آخر له معرّف حزمة خاص به بدلًا من ملف node تنفيذي عام.

يمنح TCC في macOS إمكانية الوصول إلى هوية الكود للعملية التي يراها. إذا تسبّب سير عمل Homebrew أو nvm أو pnpm أو npm في حصول ملف node تنفيذي مشترك على إمكانية الوصول، فقد ترث أي حزمة JavaScript تُشغّل عبر ذلك الملف التنفيذي نفسه امتيازات أتمتة الواجهة الرسومية.

تعامل مع إدخال node في إعدادات النظام كإذن واسع لبيئة تشغيل Node تلك، وليس كإذن لحزمة npm واحدة. تجنّب منح إمكانية الوصول إلى node إلا إذا كنت تثق بكل سكربت وحزمة تُشغّل عبر تثبيت Node المحدد ذلك.

إذا منحت إمكانية الوصول إلى node عن طريق الخطأ، فأزل ذلك الإدخال من إعدادات النظام -> الخصوصية والأمان -> إمكانية الوصول. ثم امنح التطبيق أو المساعد الموقّع الذي يجب أن يملك أتمتة واجهة المستخدم.

قائمة التحقق للاسترداد عند اختفاء المطالبات

  1. اخرج من التطبيق.
  2. أزل إدخال التطبيق في إعدادات النظام -> الخصوصية والأمان.
  3. أعد تشغيل التطبيق من المسار نفسه وامنح الأذونات مجددًا.
  4. إذا كانت المطالبة لا تزال لا تظهر، فأعد ضبط إدخالات TCC باستخدام tccutil وحاول مرة أخرى.
  5. لا تظهر بعض الأذونات مجددًا إلا بعد إعادة تشغيل macOS بالكامل.

أمثلة إعادة الضبط (استبدل معرّف الحزمة حسب الحاجة):

bash
sudo tccutil reset Accessibility ai.openclaw.macsudo tccutil reset ScreenCapture ai.openclaw.macsudo tccutil reset AppleEvents

أذونات الملفات والمجلدات (سطح المكتب/المستندات/التنزيلات)

قد يقيّد macOS أيضًا سطح المكتب والمستندات والتنزيلات لعمليات الطرفية/الخلفية. إذا تعلّقت قراءات الملفات أو قوائم الأدلة، فامنح الوصول إلى سياق العملية نفسه الذي ينفّذ عمليات الملفات (على سبيل المثال Terminal/iTerm، أو تطبيق مُشغّل عبر LaunchAgent، أو عملية SSH).

الحل البديل: انقل الملفات إلى مساحة عمل OpenClaw (~/.openclaw/workspace) إذا كنت تريد تجنّب منح أذونات لكل مجلد.

إذا كنت تختبر الأذونات، فوقّع دائمًا باستخدام شهادة حقيقية. لا تكون بُنى ad-hoc مقبولة إلا للتشغيل المحلي السريع حيث لا تهم الأذونات.

ذو صلة

Was this useful?
On this page

On this page