macOS companion app
macOS imzalama
Mac imzalama (hata ayıklama derlemeleri)
scripts/package-mac-app.sh, uygulamayı sabit bir yolda (dist/OpenClaw.app) derleyip paketler ve ardından imzalamak için scripts/codesign-mac-app.sh betiğini çağırır. TCC izinleri paket kimliğine ve kod imzasına bağlıdır; yeniden derlemeler boyunca her ikisini de kararlı tutmak (ve uygulamayı sabit bir yolda tutmak), macOS'in TCC izinlerini (bildirimler, erişilebilirlik, ekran kaydı, mikrofon, konuşma) unutmasını önler.
- Hata ayıklama paket tanımlayıcısının varsayılanı
ai.openclaw.mac.debugdeğeridir (BUNDLE_ID=...ile geçersiz kılın). - Node:
>=22.22.3 <23,>=24.15.0 <25veya>=25.9.0(depopackage.jsonengines). Paketleyici ayrıca Control UI'ı (pnpm ui:build) derler. - Varsayılan olarak gerçek bir imzalama kimliği gerektirir; kimlik bulunamazsa ve
ALLOW_ADHOC_SIGNINGayarlanmamışsa codesign betiği hatayla çıkar. Geçici imzalama (SIGN_IDENTITY="-") açıkça etkinleştirilmelidir ve TCC izinlerini yeniden derlemeler arasında kalıcı tutmaz. Bkz. macOS izinleri. - Ortamdan
SIGN_IDENTITYdeğerini okur (ör.export SIGN_IDENTITY="Apple Development: Your Name (TEAMID)"veya bir Developer ID Application sertifikası). Bu olmadancodesign-mac-app.sh, şu sırayla otomatik olarak bir kimlik seçer: Developer ID Application, Apple Distribution, Apple Development ve ardından bulunan ilk geçerli kod imzalama kimliği. CODESIGN_TIMESTAMP=auto(varsayılan), güvenilir zaman damgalarını yalnızca Developer ID Application imzaları için etkinleştirir. Her iki yönde de zorlamak içinon/offdeğerini ayarlayın.- Hakkında sekmesinin derlemeyi, git'i ve hata ayıklama/sürüm kanalını gösterebilmesi için Info.plist dosyasına
OpenClawBuildTimestamp(ISO8601 UTC) veOpenClawGitCommit(kısa karma, kullanılamıyorsaunknown) değerlerini ekler. - İmzalamadan sonra bir Team ID denetimi çalıştırır ve paket içindeki herhangi bir Mach-O farklı bir Team ID'ye sahipse başarısız olur. Atlamak için
SKIP_TEAM_ID_CHECK=1değerini ayarlayın.
Kullanım
# depo kökündenscripts/package-mac-app.sh # kimliği otomatik seçer; kimlik bulunamazsa hata verirSIGN_IDENTITY="Developer ID Application: Your Name" scripts/package-mac-app.sh # gerçek sertifikaALLOW_ADHOC_SIGNING=1 scripts/package-mac-app.sh # geçici (izinler kalıcı olmaz)SIGN_IDENTITY="-" scripts/package-mac-app.sh # açıkça geçici (aynı uyarı geçerlidir)DISABLE_LIBRARY_VALIDATION=1 scripts/package-mac-app.sh # yalnızca geliştirme için Sparkle Team ID uyuşmazlığı geçici çözümüGeçici imzalama notu
SIGN_IDENTITY="-", uygulama aynı Team ID'yi paylaşmayan gömülü çerçeveleri (Sparkle gibi) yüklediğinde çökmeleri önlemek için Hardened Runtime'ı (--options runtime) devre dışı bırakır. Geçici imzalar ayrıca TCC izinlerinin kalıcılığını bozar; kurtarma adımları için macOS izinleri bölümüne bakın.
Hakkında için derleme meta verileri
Hakkında sekmesi; sürümü, derleme tarihini, git kaydını ve derlemenin DEBUG olup olmadığını (#if DEBUG aracılığıyla) göstermek için Info.plist dosyasındaki OpenClawBuildTimestamp ve OpenClawGitCommit değerlerini okur. Bu değerleri yenilemek için kod değişikliklerinden sonra paketleyiciyi yeniden çalıştırın.