macOS companion app
Penandatanganan macOS
penandatanganan mac (build debug)
scripts/package-mac-app.sh membangun dan mengemas aplikasi ke jalur tetap (dist/OpenClaw.app), lalu memanggil scripts/codesign-mac-app.sh untuk menandatanganinya. Izin TCC terikat pada ID bundel dan tanda tangan kode; menjaga keduanya tetap stabil (serta aplikasi tetap berada di jalur yang sama) di setiap pembangunan ulang mencegah macOS melupakan pemberian izin TCC (notifikasi, aksesibilitas, perekaman layar, mikrofon, pengenalan ucapan).
- Pengidentifikasi bundel debug secara default adalah
ai.openclaw.mac.debug(ganti denganBUNDLE_ID=...). - Node:
>=22.19.0 <23atau>=23.11.0(enginesdalampackage.jsonrepositori). Pengemas juga membangun UI Kontrol (pnpm ui:build). - Secara default memerlukan identitas penandatanganan yang valid; skrip penandatanganan kode berhenti dengan galat jika tidak menemukannya dan
ALLOW_ADHOC_SIGNINGtidak ditetapkan. Penandatanganan ad hoc (SIGN_IDENTITY="-") harus diaktifkan secara eksplisit dan tidak mempertahankan izin TCC di setiap pembangunan ulang. Lihat izin macOS. - Membaca
SIGN_IDENTITYdari lingkungan (misalnyaexport SIGN_IDENTITY="Apple Development: Your Name (TEAMID)", atau sertifikat Developer ID Application). Tanpa nilai tersebut,codesign-mac-app.shmemilih identitas secara otomatis dengan urutan berikut: Developer ID Application, Apple Distribution, Apple Development, lalu identitas penandatanganan kode valid pertama yang ditemukan. CODESIGN_TIMESTAMP=auto(default) mengaktifkan stempel waktu tepercaya hanya untuk tanda tangan Developer ID Application. Tetapkan keon/offuntuk memaksakan pengaktifan atau penonaktifannya.- Menambahkan
OpenClawBuildTimestamp(ISO8601 UTC) danOpenClawGitCommit(hash pendek,unknownjika tidak tersedia) ke Info.plist agar tab Tentang dapat menampilkan build, git, serta saluran debug/rilis. - Menjalankan audit ID Tim setelah penandatanganan dan akan gagal jika ada Mach-O di dalam bundel yang memiliki ID Tim berbeda. Tetapkan
SKIP_TEAM_ID_CHECK=1untuk melewatinya.
Penggunaan
# dari root repositoriscripts/package-mac-app.sh # memilih identitas secara otomatis; galat jika tidak ditemukanSIGN_IDENTITY="Developer ID Application: Your Name" scripts/package-mac-app.sh # sertifikat asliALLOW_ADHOC_SIGNING=1 scripts/package-mac-app.sh # ad hoc (izin tidak akan dipertahankan)SIGN_IDENTITY="-" scripts/package-mac-app.sh # ad hoc eksplisit (dengan peringatan yang sama)DISABLE_LIBRARY_VALIDATION=1 scripts/package-mac-app.sh # solusi sementara khusus pengembangan untuk ketidakcocokan ID Tim SparkleCatatan penandatanganan ad hoc
SIGN_IDENTITY="-" menonaktifkan Hardened Runtime (--options runtime) untuk mencegah kerusakan saat aplikasi memuat kerangka kerja tersemat (seperti Sparkle) yang tidak menggunakan ID Tim yang sama. Tanda tangan ad hoc juga menyebabkan izin TCC tidak dipertahankan; lihat izin macOS untuk langkah-langkah pemulihan.
Metadata build untuk Tentang
Tab Tentang membaca OpenClawBuildTimestamp dan OpenClawGitCommit dari Info.plist untuk menampilkan versi, tanggal build, commit git, dan apakah build tersebut DEBUG (melalui #if DEBUG). Jalankan kembali pengemas setelah perubahan kode untuk memperbarui nilai-nilai ini.