macOS companion app
Assinatura no macOS
assinatura no Mac (compilações de depuração)
scripts/package-mac-app.sh compila e empacota o aplicativo em um caminho fixo (dist/OpenClaw.app) e, em seguida, chama scripts/codesign-mac-app.sh para assiná-lo. As permissões do TCC estão vinculadas ao ID do pacote e à assinatura de código; manter ambos estáveis (e o aplicativo em um caminho fixo) entre recompilações evita que o macOS esqueça as concessões do TCC (notificações, acessibilidade, gravação de tela, microfone e fala).
- O identificador do pacote de depuração usa
ai.openclaw.mac.debugpor padrão (substitua comBUNDLE_ID=...). - Node:
>=22.22.3 <23,>=24.15.0 <25ou>=25.9.0(package.jsondo repositórioengines). O empacotador também compila a interface de controle (pnpm ui:build). - Por padrão, exige uma identidade de assinatura real; o script de assinatura de código termina com um erro se nenhuma for encontrada e
ALLOW_ADHOC_SIGNINGnão estiver definido. A assinatura ad hoc (SIGN_IDENTITY="-") requer ativação explícita e não mantém as permissões do TCC entre recompilações. Consulte permissões do macOS. - Lê
SIGN_IDENTITYdo ambiente (por exemplo,export SIGN_IDENTITY="Apple Development: Your Name (TEAMID)"ou um certificado Developer ID Application). Sem esse valor,codesign-mac-app.shseleciona automaticamente uma identidade nesta ordem: Developer ID Application, Apple Distribution, Apple Development e, por fim, a primeira identidade válida de assinatura de código encontrada. CODESIGN_TIMESTAMP=auto(padrão) habilita carimbos de data e hora confiáveis somente para assinaturas Developer ID Application. Definaon/offpara forçar qualquer uma das opções.- Grava no Info.plist
OpenClawBuildTimestamp(UTC ISO8601) eOpenClawGitCommit(hash curto,unknownse indisponível), para que a aba Sobre possa mostrar a compilação, o Git e o canal de depuração/lançamento. - Executa uma auditoria do ID da equipe após a assinatura e falha se algum Mach-O dentro do pacote tiver um ID da equipe diferente. Defina
SKIP_TEAM_ID_CHECK=1para ignorar essa verificação.
Uso
# a partir da raiz do repositórioscripts/package-mac-app.sh # seleciona automaticamente a identidade; gera erro se nenhuma for encontradaSIGN_IDENTITY="Developer ID Application: Your Name" scripts/package-mac-app.sh # certificado realALLOW_ADHOC_SIGNING=1 scripts/package-mac-app.sh # ad hoc (as permissões não serão mantidas)SIGN_IDENTITY="-" scripts/package-mac-app.sh # ad hoc explícita (mesma ressalva)DISABLE_LIBRARY_VALIDATION=1 scripts/package-mac-app.sh # solução alternativa somente para desenvolvimento para incompatibilidade do ID da equipe do SparkleObservação sobre assinatura ad hoc
SIGN_IDENTITY="-" desabilita o Hardened Runtime (--options runtime) para evitar falhas quando o aplicativo carrega frameworks incorporados (como o Sparkle) que não compartilham o mesmo ID da equipe. Assinaturas ad hoc também impedem a persistência das permissões do TCC; consulte permissões do macOS para ver as etapas de recuperação.
Metadados de compilação para a aba Sobre
A aba Sobre lê OpenClawBuildTimestamp e OpenClawGitCommit do Info.plist para mostrar a versão, a data da compilação, o commit do Git e se a compilação é DEBUG (por meio de #if DEBUG). Execute novamente o empacotador após alterações no código para atualizar esses valores.