macOS companion app
إعداد بيئة التطوير على macOS
إعداد المطوّرين على macOS
أنشئ تطبيق OpenClaw لنظام macOS وشغّله من المصدر.
المتطلبات الأساسية
- Xcode 26.2+ (سلسلة أدوات Swift 6.2)، على أحدث إصدار متاح من macOS في Software Update.
- Node.js 24.15+ وpnpm للـ Gateway والـ CLI ونصوص الحزم. يعمل Node 22.22.3+ أيضًا.
1. تثبيت التبعيات
pnpm install2. إنشاء التطبيق وتحزيمه
./scripts/package-mac-app.shيُنتج dist/OpenClaw.app. عند عدم توفر شهادة Apple Developer ID، يعود
النص البرمجي إلى التوقيع المخصص.
للاطلاع على أوضاع تشغيل التطوير، وخيارات التوقيع، واستكشاف أخطاء Team ID وإصلاحها، راجع
apps/macos/README.md.
دورة تطوير سريعة من جذر المستودع: scripts/restart-mac.sh (أضف --no-sign لإجراء
توقيع مخصص؛ لا تستمر أذونات TCC مع --no-sign).
3. تثبيت CLI وGateway
يتضمن التطبيق المحزّم مثبّت scripts/install-cli.sh القياسي. في ملف تعريف
جديد، اختر This Mac أثناء الإعداد الأولي؛ يثبّت التطبيق CLI وبيئة التشغيل
المتطابقتين في مساحة المستخدم قبل بدء معالج Gateway.
للاستعادة اليدوية في بيئة التطوير، ثبّت CLI المطابق بنفسك:
npm install -g openclaw@<version>يعمل pnpm add -g openclaw@<version> وbun add -g openclaw@<version>
أيضًا. يظل Node بيئة التشغيل الموصى بها للـ Gateway نفسه.
استكشاف الأخطاء وإصلاحها
فشل الإنشاء: عدم تطابق سلسلة الأدوات أو SDK
يتطلب إنشاء تطبيق macOS أحدث إصدار من macOS SDK وسلسلة أدوات Swift 6.2 (Xcode 26.2+).
xcodebuild -versionxcrun swift --versionإذا لم تتطابق الإصدارات، فحدّث macOS/Xcode وأعد تشغيل عملية الإنشاء.
تعطّل التطبيق عند منح الإذن
إذا تعطّل التطبيق عند محاولة السماح بالوصول إلى Speech Recognition أو Microphone، فقد يكون السبب ذاكرة تخزين مؤقت تالفة لـ TCC أو عدم تطابق التوقيع.
-
أعد تعيين أذونات TCC لمعرّف حزمة تصحيح الأخطاء:
bash tccutil reset All ai.openclaw.mac.debug -
إذا فشل ذلك، فغيّر مؤقتًا
BUNDLE_IDفيscripts/package-mac-app.shلإجبار macOS على البدء من حالة نظيفة.
بقاء Gateway في حالة "Starting..." إلى أجل غير مسمى
تحقّق مما إذا كانت عملية معلّقة تحجز المنفذ:
openclaw gateway statusopenclaw gateway stop # إذا كنت لا تستخدم LaunchAgent (وضع التطوير / التشغيل اليدوي)، فابحث عن العملية المستمعة:lsof -nP -iTCP:18789 -sTCP:LISTENإذا كان تشغيل يدوي يحجز المنفذ، فأوقفه (Ctrl+C)، أو أنهِ العملية ذات PID الموجودة أعلاه كحل أخير.