macOS companion app
macOS-ondertekening
mac-ondertekening (debugbuilds)
scripts/package-mac-app.sh bouwt en verpakt de app naar een vast pad (dist/OpenClaw.app) en roept vervolgens scripts/codesign-mac-app.sh aan om deze te ondertekenen. TCC-machtigingen zijn gekoppeld aan de bundel-ID en codehandtekening; door beide stabiel te houden (en de app op een vast pad te laten staan) bij opeenvolgende builds, voorkomt u dat macOS TCC-toestemmingen vergeet (meldingen, toegankelijkheid, schermopname, microfoon, spraak).
- De bundel-ID voor debugbuilds is standaard
ai.openclaw.mac.debug(overschrijf metBUNDLE_ID=...). - Node:
>=22.19.0 <23of>=23.11.0(enginesin depackage.jsonvan de repository). Het verpakkingsprogramma bouwt ook de bedieningsinterface (pnpm ui:build). - Vereist standaard een echte ondertekeningsidentiteit; het ondertekeningsscript sluit af met een fout als er geen wordt gevonden en
ALLOW_ADHOC_SIGNINGniet is ingesteld. Ad-hocondertekening (SIGN_IDENTITY="-") moet expliciet worden ingeschakeld en bewaart TCC-machtigingen niet bij opeenvolgende builds. Zie macOS-machtigingen. - Leest
SIGN_IDENTITYuit de omgeving (bijvoorbeeldexport SIGN_IDENTITY="Apple Development: Your Name (TEAMID)"of een Developer ID Application-certificaat). Als deze variabele ontbreekt, selecteertcodesign-mac-app.shautomatisch een identiteit in deze volgorde: Developer ID Application, Apple Distribution, Apple Development en vervolgens de eerste gevonden geldige identiteit voor codeondertekening. CODESIGN_TIMESTAMP=auto(standaard) schakelt vertrouwde tijdstempels alleen in voor Developer ID Application-handtekeningen. Stelonofoffin om een van beide af te dwingen.- Voegt
OpenClawBuildTimestamp(ISO 8601 UTC) enOpenClawGitCommit(korte hash,unknownindien niet beschikbaar) toe aan Info.plist, zodat het tabblad Over de build, Git-commit en het debug- of releasekanaal kan weergeven. - Voert na ondertekening een Team ID-controle uit en mislukt als een Mach-O-bestand in de bundel een andere Team ID heeft. Stel
SKIP_TEAM_ID_CHECK=1in om dit over te slaan.
Gebruik
# vanuit de hoofdmap van de repositoryscripts/package-mac-app.sh # selecteert automatisch een identiteit; geeft een fout als er geen wordt gevondenSIGN_IDENTITY="Developer ID Application: Your Name" scripts/package-mac-app.sh # echt certificaatALLOW_ADHOC_SIGNING=1 scripts/package-mac-app.sh # ad-hoc (machtigingen blijven niet behouden)SIGN_IDENTITY="-" scripts/package-mac-app.sh # expliciet ad-hoc (zelfde voorbehoud)DISABLE_LIBRARY_VALIDATION=1 scripts/package-mac-app.sh # uitsluitend voor ontwikkeling: tijdelijke oplossing voor niet-overeenkomende Sparkle Team IDOpmerking over ad-hocondertekening
SIGN_IDENTITY="-" schakelt de Hardened Runtime (--options runtime) uit om crashes te voorkomen wanneer de app ingesloten frameworks laadt (zoals Sparkle) die niet dezelfde Team ID hebben. Ad-hochandtekeningen verhinderen ook dat TCC-machtigingen behouden blijven; zie macOS-machtigingen voor herstelstappen.
Buildmetadata voor Over
Het tabblad Over leest OpenClawBuildTimestamp en OpenClawGitCommit uit Info.plist om de versie, builddatum, Git-commit en of het een DEBUG-build betreft (via #if DEBUG) weer te geven. Voer het verpakkingsprogramma na codewijzigingen opnieuw uit om deze waarden bij te werken.