Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Exportando para macOS

Ver também

Esta página descreve como exportar um projeto Godot para o macOS. Se você está procurando compilar editor ou exportar binários de modelo de origem, leia Compilando para macOS.

Aplicativos macOS exportados usando os modelos oficiais de exportação são exportados como um único pacote binário Universal 2 .app, uma pasta com uma estrutura específica que armazena o executável, bibliotecas e todos os arquivos do projeto. Esse pacote pode ser exportado como está, compactado em um arquivo ZIP ou em uma imagem de disco DMG (suportado apenas ao exportar a partir do macOS). Binários universais para macOS oferecem suporte tanto às arquiteturas Intel x86_64 quanto ARM64 (Apple Silicon).

Aviso

Devido a limitações do sistema de arquivos, pacotes .app exportados do Windows não possuem a flag executable e não rodarão no macOS. Projetos exportados como .zip não são afetados por esse problema. Para rodar pacotes .app exportados do Windows no macOS, transfira o .app para um dispositivo rodando macOS ou Linux e use o comando de terminal chmod +x {executable_name} para adicionar a permissão de execução ao executable. O executável principal localizado na subpasta Contents/MacOS/, bem como executáveis auxiliares opcionais na subpasta Contents/Helpers/, devem ter a permissão de executable para que o pacote .app seja válido.

Requisitos

  • Baixe os modelos de exportação Godot. Use o menu Godot: Editor > Gerenciar modelos de exportação.

  • Um Bundle identifier válido e único deve ser definido na seção Application das opções de exportação.

Nota

Um ID de pacote (bundle ID) válido só pode conter caracteres alfanuméricos, hifens e pontos (A-Z, a-z, 0-9, - e .). A Apple recomenda usar o formato DNS reverso (por exemplo, com.exemplo.seu-jogo) de um domínio que você possui, para que seu ID de pacote seja garantidamente único. Os IDs de pacote diferenciam maiúsculas de minúsculas. Veja CFBundleIdentifier.

Aviso

Projetos exportados sem assinatura de código e notarização serão bloqueados pelo Gatekeeper caso sejam baixados de fontes desconhecidas. Consulte a página Running Godot apps on macOS para mais informações.

Assinatura de código e notarização

Por padrão, o macOS executará apenas aplicativos que estejam assinados e notarizados. Caso utilize qualquer outra configuração de assinatura, consulte Running Godot apps on macOS para alternativas.

Para autenticar um aplicativo, você deve ter um Certificado de identificação de desenvolvedor da Apple válido.

Se você possui um Apple Developer ID Certificate e está exportando a partir do macOS

Instale as ferramentas de linha de comando do Xcode e abra o Xcode pelo menos uma vez ou execute o comando sudo xcodebuild -license accept para aceitar o contrato de licença.

Para assinar o aplicativo exportado

  • Selecione Xcode codesign na opção Code Signing > Codesign.

  • Defina uma identidade de certificado Apple ID válida (Certificado "Common Name") na seção Code Signing > Identity.

Para notarizar o aplicativo exportado

  • Selecione Xcode notarytool na opção Notarization > Notarization.

  • Desative a permissão (entitlement) de Debugging.

  • Defina um login de Apple ID válido / senha específica do app ou UUID / Chave da API do App Store Connect na seção Notarization.

Você pode usar o comando xcrun notarytool history para verificar o status da notarização e usar o comando xcrun notarytool log {ID} para baixar o log de notarização .

Se você encontrar problemas de notarização, consulte Resolvendo problemas comuns de notarização para obter mais informações.

Após a conclusão da notarização, apresente o ticket no projeto exportado.

Se você possui um Apple Developer ID Certificate e está exportando a partir do Linux ou Windows

Instale o rcodesign e configure o caminho para o rcodesign na opção Editor Settings > Export > macOS > rcodesign.

Para assinar o aplicativo exportado

  • Selecione rcodesign na opção Code Signing > Codesign.

  • Defina um arquivo de certificado PKCS #12 do Apple ID válido e a senha na seção Code Signing.

Para notarizar o aplicativo exportado

Você pode usar o comando rcodesign notary-log para verificar o status da notarização.

Após a notarização ser concluída, use o comando rcodesign staple para grampear (staple) o ticket ao projeto exportado.

Se você não tiver um certificado de ID de desenvolvedor da Apple

  • Selecione Built-in (ad-hoc only) na opção Code Signing > Codesign.

  • Selecione Disabled na opção Notarization > Notarization.

Neste caso, o Godot usará uma assinatura ad-hoc, o que facilitará a execução de um aplicativo exportado para os usuários finais; consulte a página Executando aplicativos Godot no macOS para obter mais informações.

Opções de Assinatura

Opção

Descrição

Codesign (Assinatura de Código)

Ferramenta utilizada para assinatura de código.

Identidade

O "Nome Completo" ou "Nome Comum" da identidade de assinatura, armazenado no chaveiro (keychain) do macOS. [1]

Arquivo de Certificado

O arquivo de certificado PKCS #12. [2]

Senha do Certificado

Senha para o arquivo de certificado. [2]

Opções personalizadas

Array de argumentos de linha de comando passados para a ferramenta de assinatura de código.

Opções de Notarização

Opção

Descrição

Notarização

Ferramenta utilizada para notarização.

Nome Apple ID

Nome da conta Apple ID (endereço de e-mail). [3]

Senha Apple ID

Senha específica do aplicativo Apple ID. Veja Usando senhas específicas do aplicativo para habilitar a autenticação de dois fatores e criar a senha do aplicativo. [3]

ID Apple Team

ID da Equipe ("Unidade de Organização"), se o seu Apple ID pertencer a várias equipes (opcional). [3]

UUID da API

UUID do emissor da API do Apple App Store Connect.

Chave da API

Chave da API do Apple App Store Connect.

Nota

Você deve definir o Nome/Senha do Apple ID ou o UUID/Chave da API do App Store Connect.

Consulte Notarizing macOS Software Before Distribution para obter mais informações.

Direitos

Entitlements do Hardened Runtime

As permissões (entitlements) do Hardened Runtime gerenciam opções de segurança e política de acesso a recursos. Veja Hardened Runtime para mais informações.

Direito

Descrição

Permitir execução de código JIT [4]

Permite a criação de memória gravável e executável para código JIT. Se você estiver usando add-ons com código nativo dinâmico ou automodificável, ative-os de acordo com a documentação do add-on.

Permitir memória executável sem assinatura [4]

Permite a criação de memória gravável e executável sem restrições de JIT. Se você estiver usando add-ons com código nativo dinâmico ou automodificável, ative-os de acordo com a documentação do add-on.

Permitir variáveis de ambiente DYLD [4]

Allows app to use dynamic linker environment variables to inject code. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation.

Desativar Validação da Biblioteca

Permite que o aplicativo carregue bibliotecas e frameworks arbitrários. Ative esta opção se estiver usando complementos GDExtension ou assinatura ad-hoc, ou se desejar oferecer suporte a complementos externos fornecidos pelo usuário.

Entrada de Áudio

Enable if you need to use the microphone or other audio input sources, if it's enabled you should also provide usage message in the privacy/microphone_usage_description option.

Câmera

Enable if you need to use the camera, if it's enabled you should also provide usage message in the privacy/camera_usage_description option.

Localização

Enable if you need to use location information from Location Services, if it's enabled you should also provide usage message in the privacy/location_usage_description option.

Contatos

[5] Enable to allow access contacts in the user's address book, if it's enabled you should also provide usage message in the privacy/address_book_usage_description option.

Calendários

[5] Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the privacy/calendar_usage_description option.

Biblioteca de Fotos

[5] Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the privacy/photos_library_usage_description option.

Eventos Apple

[5] Ative para permitir que o aplicativo envie eventos Apple para outros aplicativos.

Depuração

[6] Você pode ativar temporariamente esta permissão para usar depuradores nativos (GDB, LLDB) com o aplicativo exportado. Esta permissão deve ser desativada para exportações de produção.

Permissão de Sandbox do Aplicativo (App Sandbox Entitlement)

O App Sandbox restringe o acesso aos dados do usuário, rede e dispositivos. Aplicativos em sandbox não podem acessar a maior parte do sistema de arquivos, não podem usar caixas de diálogo de arquivo personalizadas e não podem executar binários (usando OS.execute e OS.create_process) fora do pacote .app. Veja App Sandbox para mais informações.

Nota

Para distribuir um aplicativo através da App Store, você deve ativar o App Sandbox.

Direito

Descrição

Habilitado

Ativa o App Sandbox.

Servidor de Rede

Ative para permitir que o aplicativo escute conexões de rede de entrada.

Cliente de Rede

Ative para permitir que o aplicativo estabeleça conexões de rede de saída.

Dispositivo USB

Permite que o aplicativo interaja com dispositivos USB. Este direito é necessário para usar controles com fio.

Bluetooth do Dispositivo

Habilite para permitir que o aplicativo interaja com dispositivos Bluetooth. Este direito é necessário para usar controles sem fio.

Download de Arquivos [7]

Permite ler ou escrever acesso à pasta "Downloads" do usuário.

Arquivos de imagens [7]

Permite o acesso para leitura ou escrever na pasta "Pictures" do usuário.

Arquivos de música [7]

Permite o acesso para leitura ou escrever na pasta "Música" do usuário.

Arquivos Filmes [7]

Permite o acesso para leitura ou escrever na pasta "Vídeos" do usuário.

Arquivos selecionados pelo usuário [7]

Permite acesso de leitura ou gravação a uma pasta arbitrária. Para obter acesso, uma pasta deve ser selecionada na caixa de diálogo de arquivos nativa pelo usuário.

Executável Auxiliar (Helper Executable)

Lista de executáveis auxiliares a serem incorporados ao pacote do aplicativo. Aplicativos em sandbox estão limitados a executar apenas esses executáveis.

Nota

Você pode sobregravar as permissões padrão selecionando um arquivo de permissões (entitlements) personalizado; neste caso, todas as outras permissões são ignoradas.

Variáveis de ambiente

Você pode usar as seguintes variáveis de ambiente para definir opções de exportação fora do editor. Durante o processo de exportação, elas substituem os valores que você definiu no menu de exportação.

Variáveis de ambiente para exportação no macOS

Opção de exportação

Variável de ambiente

Encryption / Encryption Key (Criptografia / Chave de Criptografia)

GODOT_SCRIPT_ENCRYPTION_KEY

Options / Codesign / Certificate File (Arquivo de Certificado)

GODOT_MACOS_CODESIGN_CERTIFICATE_FILE

Options / Codesign / Certificate Password (Senha do Certificado)

GODOT_MACOS_CODESIGN_CERTIFICATE_PASSWORD

Options / Codesign / Provisioning Profile (Perfil de Provisionamento)

GODOT_MACOS_CODESIGN_PROVISIONING_PROFILE

Options / Notarization / API UUID

GODOT_MACOS_NOTARIZATION_API_UUID

Options / Notarization / API Key (Chave da API)

GODOT_MACOS_NOTARIZATION_API_KEY

Options / Notarization / API Key ID

GODOT_MACOS_NOTARIZATION_API_KEY_ID

Options / Notarization / Apple ID Name (Nome do Apple ID)

GODOT_MACOS_NOTARIZATION_APPLE_ID_NAME

Options / Notarization / Apple ID Password (Senha do Apple ID)

GODOT_MACOS_NOTARIZATION_APPLE_ID_PASSWORD

Opções de exportação

Você pode encontrar uma lista completa das opções de exportação disponíveis na referência da classe EditorExportPlatformMacOS.