macOS-ontwikkelaarssetup
Bouw en voer de OpenClaw macOS-applicatie uit vanaf de broncode.Vereisten
Controleer voordat je de app bouwt of je het volgende hebt geïnstalleerd:- Xcode 26.2+: Vereist voor Swift-ontwikkeling.
- Node.js 24 & pnpm: Aanbevolen voor de Gateway, CLI en verpakkingsscripts. Node 22 LTS, momenteel
22.19+, blijft ondersteund voor compatibiliteit.
1. Afhankelijkheden installeren
Installeer de projectbrede afhankelijkheden:2. De app bouwen en verpakken
Voer het volgende uit om de macOS-app te bouwen en te verpakken naardist/OpenClaw.app:
-).
Zie de README van de macOS-app voor ontwikkelmodi, ondertekeningsvlaggen en probleemoplossing voor Team ID:
https://github.com/openclaw/openclaw/blob/main/apps/macos/README.md
Opmerking: Ad-hoc ondertekende apps kunnen beveiligingsmeldingen veroorzaken. Als de app direct crasht met “Abort trap 6”, zie de sectie Probleemoplossing.
3. De CLI en Gateway installeren
De verpakte app bevat het canonieke installatieprogrammascripts/install-cli.sh. Kies op een
nieuw profiel tijdens onboarding This Mac; de app installeert de
bijbehorende CLI en runtime in de gebruikersruimte voordat de Gateway-wizard wordt gestart.
Installeer voor handmatig herstel tijdens ontwikkeling zelf de bijbehorende CLI:
pnpm add -g openclaw@<version> en bun add -g openclaw@<version> werken ook.
Voor de Gateway-runtime blijft Node de aanbevolen route.
Probleemoplossing
Build mislukt: toolchain- of SDK-mismatch
De build van de macOS-app verwacht de nieuwste macOS-SDK en Swift 6.2-toolchain. Systeemafhankelijkheden (vereist):- Nieuwste macOS-versie beschikbaar in Software-update (vereist door Xcode 26.2-SDK’s)
- Xcode 26.2 (Swift 6.2-toolchain)
App crasht bij het verlenen van toestemming
Als de app crasht wanneer je toegang tot Spraakherkenning of Microfoon probeert toe te staan, kan dit komen door een beschadigde TCC-cache of een handtekeningmismatch. Oplossing:-
Reset de TCC-machtigingen:
-
Als dat mislukt, wijzig dan tijdelijk de
BUNDLE_IDinscripts/package-mac-app.shom macOS een “schone lei” te laten gebruiken.