firma de mac (compilaciones de depuración)
scripts/package-mac-app.sh compila y empaqueta la aplicación en una ruta fija (dist/OpenClaw.app) y luego llama a scripts/codesign-mac-app.sh para firmarla. Los permisos de TCC están vinculados al ID del paquete y a la firma de código; mantener ambos estables (y la aplicación en una ruta fija) entre recompilaciones evita que macOS olvide las concesiones de TCC (notificaciones, accesibilidad, grabación de pantalla, micrófono, voz).
- El identificador del paquete de depuración predeterminado es
ai.openclaw.mac.debug(se puede sobrescribir conBUNDLE_ID=...). - Node:
>=22.19.0 <23o>=23.11.0(enginesdepackage.jsondel repositorio). El empaquetador también compila la UI de control (pnpm ui:build). - Requiere una identidad de firma real de forma predeterminada; el script de codesign termina con un error si no encuentra ninguna y
ALLOW_ADHOC_SIGNINGno está definido. La firma ad hoc (SIGN_IDENTITY="-") es una opción explícita y no conserva los permisos de TCC entre recompilaciones. Consulta permisos de macOS. - Lee
SIGN_IDENTITYdesde el entorno (por ejemplo,export SIGN_IDENTITY="Apple Development: Your Name (TEAMID)", o un certificado Developer ID Application). Sin esto,codesign-mac-app.shselecciona automáticamente una identidad en este orden: Developer ID Application, Apple Distribution, Apple Development y luego la primera identidad de codesigning válida encontrada. CODESIGN_TIMESTAMP=auto(predeterminado) habilita marcas de tiempo de confianza solo para firmas Developer ID Application. Defineon/offpara forzarlo en uno u otro sentido.- Marca Info.plist con
OpenClawBuildTimestamp(ISO8601 UTC) yOpenClawGitCommit(hash corto,unknownsi no está disponible) para que la pestaña Acerca de pueda mostrar la compilación, git y el canal de depuración/lanzamiento. - Ejecuta una auditoría de Team ID después de firmar y falla si algún Mach-O dentro del paquete tiene un Team ID distinto. Define
SKIP_TEAM_ID_CHECK=1para omitirla.
Uso
Nota sobre la firma ad hoc
SIGN_IDENTITY="-" deshabilita Hardened Runtime (--options runtime) para evitar fallos cuando la aplicación carga frameworks incrustados (como Sparkle) que no comparten el mismo Team ID. Las firmas ad hoc también rompen la persistencia de permisos de TCC; consulta permisos de macOS para ver los pasos de recuperación.
Metadatos de compilación para Acerca de
La pestaña Acerca de leeOpenClawBuildTimestamp y OpenClawGitCommit desde Info.plist para mostrar la versión, la fecha de compilación, el commit de git y si la compilación es DEBUG (mediante #if DEBUG). Vuelve a ejecutar el empaquetador después de cambios de código para actualizar estos valores.