macOS companion app
إعداد بيئة تطوير macOS
إعداد المطور على macOS
ابنِ تطبيق OpenClaw على macOS وشغّله من المصدر.
المتطلبات الأساسية
قبل بناء التطبيق، تأكد من تثبيت ما يلي:
- Xcode 26.2+: مطلوب لتطوير Swift.
- Node.js 24 و pnpm: موصى بهما لـ Gateway وCLI وسكربتات التغليف. لا يزال Node 22 LTS، حاليًا
22.16+، مدعومًا للتوافق.
1. تثبيت التبعيات
ثبّت تبعيات المشروع بالكامل:
pnpm install2. بناء التطبيق وتغليفه
لبناء تطبيق macOS وتغليفه في dist/OpenClaw.app، شغّل:
./scripts/package-mac-app.shإذا لم تكن لديك شهادة Apple Developer ID، فسيستخدم السكربت تلقائيًا التوقيع المخصص (-).
لأوضاع التشغيل التطويرية، وأعلام التوقيع، واستكشاف مشكلات Team ID وإصلاحها، راجع README الخاص بتطبيق macOS: https://github.com/openclaw/openclaw/blob/main/apps/macos/README.md
ملاحظة: قد تؤدي التطبيقات الموقّعة توقيعًا مخصصًا إلى ظهور مطالبات أمنية. إذا تعطل التطبيق فورًا برسالة "Abort trap 6"، فراجع قسم استكشاف الأخطاء وإصلاحها.
3. تثبيت CLI
يتوقع تطبيق macOS تثبيت openclaw CLI عالميًا لإدارة المهام الخلفية.
لتثبيته (موصى به):
- افتح تطبيق OpenClaw.
- انتقل إلى تبويب إعدادات عام.
- انقر على "تثبيت CLI".
بدلًا من ذلك، ثبّته يدويًا:
npm install -g openclaw@<version>يعمل أيضًا pnpm add -g openclaw@<version> و bun add -g openclaw@<version>.
بالنسبة إلى وقت تشغيل Gateway، يظل Node هو المسار الموصى به.
استكشاف الأخطاء وإصلاحها
فشل البناء: عدم تطابق سلسلة الأدوات أو SDK
يتوقع بناء تطبيق macOS أحدث macOS SDK وسلسلة أدوات Swift 6.2.
تبعيات النظام (مطلوبة):
- أحدث إصدار من macOS متاح في Software Update (مطلوب بواسطة حزم Xcode 26.2 SDK)
- Xcode 26.2 (سلسلة أدوات Swift 6.2)
الفحوصات:
xcodebuild -versionxcrun swift --versionإذا لم تتطابق الإصدارات، فحدّث macOS/Xcode وأعد تشغيل البناء.
تعطل التطبيق عند منح الإذن
إذا تعطل التطبيق عند محاولة السماح بالوصول إلى التعرف على الكلام أو الميكروفون، فقد يكون ذلك بسبب تلف ذاكرة TCC المؤقتة أو عدم تطابق التوقيع.
الإصلاح:
-
أعد ضبط أذونات TCC:
bash tccutil reset All ai.openclaw.mac.debug -
إذا فشل ذلك، فغيّر
BUNDLE_IDمؤقتًا فيscripts/package-mac-app.shلإجبار macOS على البدء "من صفحة نظيفة".
بقاء Gateway على "Starting..." إلى أجل غير مسمى
إذا بقيت حالة Gateway على "Starting..."، فتحقق مما إذا كانت عملية خاملة تمسك بالمنفذ:
openclaw gateway statusopenclaw gateway stop # If you're not using a LaunchAgent (dev mode / manual runs), find the listener:lsof -nP -iTCP:18789 -sTCP:LISTENإذا كان تشغيل يدوي يمسك بالمنفذ، فأوقف تلك العملية (Ctrl+C). كملاذ أخير، أنهِ PID الذي وجدته أعلاه.