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 arasında ikisini de kararlı tutmak (ve uygulamayı sabit bir yolda bulundurmak), macOS'in TCC izinlerini (bildirimler, erişilebilirlik, ekran kaydı, mikrofon, konuşma) unutmasını önler.
- Hata ayıklama paket tanımlayıcısı varsayılan olarak
ai.openclaw.mac.debugdeğeridir (BUNDLE_ID=...ile geçersiz kılınabilir). - Node:
>=22.19.0 <23veya>=23.11.0(depopackage.jsondosyasındakiengines). Paketleyici ayrıca Denetim Arayüzü'nü derler (pnpm ui:build). - Varsayılan olarak gerçek bir imzalama kimliği gerektirir; hiçbiri bulunmazsa ve
ALLOW_ADHOC_SIGNINGayarlanmamışsa kod imzalama betiği hatayla sonlanır. Geçici imzalama (SIGN_IDENTITY="-") açıkça etkinleştirilmelidir ve yeniden derlemeler arasında TCC izinlerini korumaz. Bkz. macOS izinleri. - Ortamdan
SIGN_IDENTITYdeğerini okur (ör.export SIGN_IDENTITY="Apple Development: Your Name (TEAMID)"veya bir Developer ID Application sertifikası). Bu değer olmadancodesign-mac-app.sh, kimliği şu sırayla otomatik olarak 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 zorlamak içinon/offolarak ayarlayın.- Hakkında sekmesinin derlemeyi, git bilgisini 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 Ekip Kimliği denetimi çalıştırır ve paket içindeki herhangi bir Mach-O farklı bir Ekip Kimliğine sahipse başarısız olur. Atlamak için
SKIP_TEAM_ID_CHECK=1ayarlayı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 korunmaz)SIGN_IDENTITY="-" scripts/package-mac-app.sh # açıkça belirtilen geçici imzalama (aynı uyarı geçerlidir)DISABLE_LIBRARY_VALIDATION=1 scripts/package-mac-app.sh # yalnızca geliştirme için Sparkle Ekip Kimliği uyuşmazlığı geçici çözümüGeçici imzalama notu
SIGN_IDENTITY="-", uygulama aynı Ekip Kimliğini paylaşmayan gömülü çerçeveleri (Sparkle gibi) yüklediğinde çökmeleri önlemek için Güçlendirilmiş Çalışma Zamanı'nı (--options runtime) devre dışı bırakır. Geçici imzalar ayrıca TCC izinlerinin kalıcılığını da bozar; kurtarma adımları için macOS izinleri sayfasına bakın.
Hakkında için derleme meta verileri
Hakkında sekmesi; sürümü, derleme tarihini, git işlemesini ve derlemenin DEBUG olup olmadığını (#if DEBUG aracılığıyla) göstermek için Info.plist dosyasından OpenClawBuildTimestamp ve OpenClawGitCommit değerlerini okur. Bu değerleri yenilemek için kod değişikliklerinden sonra paketleyiciyi yeniden çalıştırın.