Skip to main content

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.debug değeridir (BUNDLE_ID=... ile geçersiz kılın).
  • Node: >=22.22.3 <23, >=24.15.0 <25 veya >=25.9.0 (depo package.json engines). Paketleyici ayrıca Control UI’ı (pnpm ui:build) derler.
  • Varsayılan olarak gerçek bir imzalama kimliği gerektirir; kimlik bulunamazsa ve ALLOW_ADHOC_SIGNING ayarlanmamış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_IDENTITY değerini okur (ör. export SIGN_IDENTITY="Apple Development: Your Name (TEAMID)" veya bir Developer ID Application sertifikası). Bu olmadan codesign-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çin on/off değ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) ve OpenClawGitCommit (kısa karma, kullanılamıyorsa unknown) 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=1 değerini ayarlayın.

Kullanı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.

İlgili