Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
podpisywanie mac (kompilacje debug)
Ta aplikacja jest zwykle budowana z użyciemscripts/package-mac-app.sh, który teraz:
- ustawia stabilny identyfikator pakietu debug:
ai.openclaw.mac.debug - zapisuje Info.plist z tym identyfikatorem pakietu (nadpisanie przez
BUNDLE_ID=...) - wywołuje
scripts/codesign-mac-app.sh, aby podpisać główny plik binarny i pakiet aplikacji, dzięki czemu macOS traktuje każdą przebudowę jako ten sam podpisany pakiet i zachowuje uprawnienia TCC (powiadomienia, dostępność, nagrywanie ekranu, mikrofon, mowa). Aby uprawnienia były stabilne, użyj prawdziwej tożsamości podpisującej; ad-hoc wymaga jawnego włączenia i jest kruche (zobacz uprawnienia macOS). - domyślnie używa
CODESIGN_TIMESTAMP=auto; włącza to zaufane znaczniki czasu dla podpisów Developer ID. UstawCODESIGN_TIMESTAMP=off, aby pominąć znakowanie czasem (offline kompilacje debug). - wstrzykuje metadane kompilacji do Info.plist:
OpenClawBuildTimestamp(UTC) iOpenClawGitCommit(krótki hash), aby panel Informacje mógł pokazać kompilację, git oraz kanał debug/release. - Pakowanie domyślnie używa Node 24: skrypt uruchamia kompilacje TS i kompilację Control UI. Node 22 LTS, obecnie
22.16+, pozostaje obsługiwany ze względu na kompatybilność. - odczytuje
SIGN_IDENTITYze środowiska. Dodajexport SIGN_IDENTITY="Apple Development: Your Name (TEAMID)"(albo swój certyfikat Developer ID Application) do konfiguracji powłoki, aby zawsze podpisywać swoim certyfikatem. Podpisywanie ad-hoc wymaga jawnego włączenia przezALLOW_ADHOC_SIGNING=1lubSIGN_IDENTITY="-"(niezalecane do testowania uprawnień). - po podpisaniu uruchamia audyt Team ID i kończy się błędem, jeśli jakikolwiek Mach-O w pakiecie aplikacji jest podpisany innym Team ID. Ustaw
SKIP_TEAM_ID_CHECK=1, aby pominąć.
Użycie
Uwaga dotycząca podpisywania ad-hoc
Podczas podpisywania zSIGN_IDENTITY="-" (ad-hoc) skrypt automatycznie wyłącza Hardened Runtime (--options runtime). Jest to konieczne, aby zapobiec awariom, gdy aplikacja próbuje załadować osadzone frameworki (takie jak Sparkle), które nie mają tego samego Team ID. Podpisy ad-hoc psują też trwałość uprawnień TCC; kroki naprawcze znajdziesz w uprawnieniach macOS.
Metadane kompilacji dla Informacji
package-mac-app.sh oznacza pakiet następującymi danymi:
OpenClawBuildTimestamp: ISO8601 UTC w momencie pakowaniaOpenClawGitCommit: krótki hash git (albounknown, jeśli niedostępny)
#if DEBUG). Uruchom pakietowanie po zmianach w kodzie, aby odświeżyć te wartości.
Dlaczego
Uprawnienia TCC są powiązane z identyfikatorem pakietu oraz podpisem kodu. Niepodpisane kompilacje debug ze zmieniającymi się UUID powodowały, że macOS zapominał przyznane uprawnienia po każdej przebudowie. Podpisanie plików binarnych (domyślnie ad-hoc) i zachowanie stałego identyfikatora/ścieżki pakietu (dist/OpenClaw.app) zachowuje uprawnienia między kompilacjami, zgodnie z podejściem VibeTunnel.