macOS companion app
การตั้งค่าสภาพแวดล้อมพัฒนาบน macOS
การตั้งค่านักพัฒนาบน macOS
สร้างและเรียกใช้แอปพลิเคชัน OpenClaw สำหรับ macOS จากซอร์ส
ข้อกำหนดเบื้องต้น
ก่อนสร้างแอป ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งสิ่งต่อไปนี้แล้ว:
- Xcode 26.2+: จำเป็นสำหรับการพัฒนา Swift
- Node.js 24 และ pnpm: แนะนำสำหรับ gateway, CLI และสคริปต์จัดแพ็กเกจ Node 22 LTS ซึ่งปัจจุบันคือ
22.19+ยังคงรองรับเพื่อความเข้ากันได้
1. ติดตั้ง Dependencies
ติดตั้ง dependencies ทั้งโปรเจกต์:
pnpm install2. สร้างและจัดแพ็กเกจแอป
หากต้องการสร้างแอป 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
หมายเหตุ: แอปที่ลงนามแบบ ad-hoc อาจเรียกพรอมต์ความปลอดภัย หากแอปขัดข้องทันทีพร้อมข้อความ "Abort trap 6" โปรดดูส่วน การแก้ปัญหา
3. ติดตั้ง CLI และ Gateway
แอปที่จัดแพ็กเกจจะฝังตัวติดตั้งมาตรฐาน scripts/install-cli.sh ไว้ ในโปรไฟล์ใหม่ ให้เลือก This Mac ระหว่างการเริ่มต้นใช้งาน แอปจะติดตั้ง CLI และ runtime ระดับผู้ใช้ที่ตรงกันก่อนเริ่มตัวช่วยตั้งค่า Gateway
สำหรับการกู้คืนการพัฒนาด้วยตนเอง ให้ติดตั้ง CLI ที่ตรงกันด้วยตัวเอง:
npm install -g openclaw@<version>pnpm add -g openclaw@<version> และ bun add -g openclaw@<version> ก็ใช้งานได้เช่นกัน สำหรับ runtime ของ Gateway นั้น Node ยังคงเป็นเส้นทางที่แนะนำ
การแก้ปัญหา
การสร้างล้มเหลว: toolchain หรือ SDK ไม่ตรงกัน
การสร้างแอป macOS คาดหวัง macOS SDK ล่าสุดและ Swift 6.2 toolchain
Dependencies ของระบบ (จำเป็น):
- macOS เวอร์ชันล่าสุดที่มีใน Software Update (จำเป็นสำหรับ Xcode 26.2 SDKs)
- Xcode 26.2 (Swift 6.2 toolchain)
การตรวจสอบ:
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 เริ่มจากสถานะ "clean slate"
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) ทางเลือกสุดท้าย ให้ kill PID ที่คุณพบด้านบน