التطبيق المرافق لنظام macOS

إعداد التطوير لنظام macOS

يغطي هذا الدليل الخطوات اللازمة لبناء وتشغيل تطبيق OpenClaw لنظام macOS من المصدر.

المتطلبات الأساسية

قبل بناء التطبيق، تأكد من تثبيت ما يلي:

  1. Xcode 26.2+: مطلوب لتطوير Swift.
  2. Node.js 22+ & pnpm: مطلوب للبوابة (gateway) و CLI ونصوص التغليف.

1. تثبيت التبعيات

قم بتثبيت التبعيات العامة للمشروع:

pnpm install

2. بناء وتغليف التطبيق

لبناء تطبيق macOS وتغليفه في dist/OpenClaw.app، قم بتشغيل:

./scripts/package-mac-app.sh

إذا لم يكن لديك شهادة Apple Developer ID، فسيستخدم النص تلقائيًا التوقيع المخصص (ad-hoc) (-). لأوضاع التشغيل للتطوير، وأعلام التوقيع، واستكشاف أخطاء Team ID، راجع ملف README الخاص بتطبيق macOS: https://github.com/openclaw/openclaw/blob/main/apps/macos/README.md

ملاحظة: قد تسبب التطبيقات الموقعة مخصصًا ظهور مطالبات أمنية. إذا تعطل التطبيق فورًا مع رسالة "Abort trap 6"، راجع قسم استكشاف الأخطاء وإصلاحها.

3. تثبيت CLI

يتوقع تطبيق macOS تثبيت openclaw CLI عالميًا لإدارة المهام في الخلفية. لتثبيته (موصى به):

  1. افتح تطبيق OpenClaw.
  2. انتقل إلى علامة تبويب الإعدادات General.
  3. انقر على "Install CLI".

بدلاً من ذلك، يمكنك تثبيته يدويًا:

npm install -g openclaw@<version>

استكشاف الأخطاء وإصلاحها

فشل البناء: عدم تطابق أدوات التطوير أو SDK

يتوقع بناء تطبيق macOS أحدث إصدار من macOS SDK وأدوات Swift 6.2. التبعيات النظامية (مطلوبة):

  • أحدث إصدار من macOS متاح في تحديث البرامج (مطلوب بواسطة Xcode 26.2 SDKs)
  • Xcode 26.2 (أدوات Swift 6.2)

الفحوصات:

xcodebuild -version
xcrun swift --version

إذا كانت الإصدارات غير متطابقة، قم بتحديث macOS/Xcode وأعد تشغيل عملية البناء.

تعطل التطبيق عند منح الإذن

إذا تعطل التطبيق عند محاولة السماح بالوصول إلى التعرف على الكلام أو الميكروفون، فقد يكون السبب هو ذاكرة تخزين مؤقت تالفة لـ TCC أو عدم تطابق في التوقيع. الإصلاح:

  1. إعادة تعيين أذونات TCC:

    نسخ

    tccutil reset All ai.openclaw.mac.debug
    
  2. إذا فشل ذلك، قم بتغيير BUNDLE_ID مؤقتًا في ملف scripts/package-mac-app.sh لإجبار النظام على التعامل معه كـ "بداية نظيفة".

البوابة "جارٍ البدء..." بشكل غير منته

إذا ظل حالة البوابة على "جارٍ البدء..."، تحقق مما إذا كانت هناك عملية زومبي تحتجز المنفذ:

openclaw gateway status
openclaw gateway stop

# إذا كنت لا تستخدم LaunchAgent (وضع التطوير / تشغيل يدوي)، ابحث عن المستمع:
lsof -nP -iTCP:18789 -sTCP:LISTEN

إذا كان تشغيل يدوي يحتجز المنفذ، أوقف تلك العملية (Ctrl+C). كحل أخير، أوقف معرف العملية (PID) الذي وجدته أعلاه.

Raspberry Piشريط القائمة