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 seluruh proses pembangunan ulang mencegah macOS melupakan izin TCC (notifikasi, aksesibilitas, perekaman layar, mikrofon, ucapan).
- Pengenal bundel debug secara default adalah
ai.openclaw.mac.debug(ganti denganBUNDLE_ID=...). - Node:
>=22.22.3 <23,>=24.15.0 <25, atau>=25.9.0(package.jsonrepoengines). Pengemas juga membangun UI Kontrol (pnpm ui:build). - Secara default memerlukan identitas penandatanganan asli; skrip codesign berhenti dengan kesalahan jika tidak ada yang ditemukan dan
ALLOW_ADHOC_SIGNINGtidak ditetapkan. Penandatanganan ad hoc (SIGN_IDENTITY="-") harus diaktifkan secara eksplisit dan tidak mempertahankan izin TCC di seluruh proses 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 dalam 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. Tetapkanon/offuntuk memaksakan salah satu opsi.- Mencantumkan
OpenClawBuildTimestamp(ISO8601 UTC) danOpenClawGitCommit(hash pendek,unknownjika tidak tersedia) pada Info.plist agar tab Tentang dapat menampilkan build, git, dan kanal debug/rilis. - Menjalankan audit ID Tim setelah penandatanganan dan gagal jika ada Mach-O di dalam bundel yang memiliki ID Tim berbeda. Tetapkan
SKIP_TEAM_ID_CHECK=1untuk melewatinya.
Penggunaan
# dari root reposcripts/package-mac-app.sh # memilih identitas secara otomatis; menghasilkan kesalahan 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 bertahan)SIGN_IDENTITY="-" scripts/package-mac-app.sh # ad hoc eksplisit (dengan catatan 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 crash saat aplikasi memuat framework tertanam (seperti Sparkle) yang tidak menggunakan ID Tim yang sama. Tanda tangan ad hoc juga mengganggu persistensi izin TCC; 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 ulang pengemas setelah perubahan kode untuk memperbarui nilai-nilai ini.