Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Exportando para macOS

Ver también

This page describes how to export a Godot project to macOS. If you're looking to compile editor or export template binaries from source instead, read Compilando para macOS.

macOS apps exported with the official export templates are exported as a single "Universal 2" binary .app bundle, a folder with a specific structure which stores the executable, libraries and all the project files. This bundle can be exported as is, packed in a ZIP archive or DMG disk image (only supported when exporting from a computer running macOS). Universal binaries for macOS support both Intel x86_64 and ARM64 (Apple silicon, i.e. M1) architectures.

Requerimientos

  • Descarga las plantillas de exportación de Godot. Usa el menu de Godot: Editor > Manage Export Templates.

  • Se debe establecer un identificador de paquete válido y único en la sección Application de las opciones de exportación.

Advertencia

Los proyectos exportados sin firma de código y notarización serán bloqueados por Gatekeeper si se descargan desde fuentes desconocidas. Consulta la página Running Godot apps on macOS para obtener más información.

Firma de código y notarización

De forma predeterminada, macOS solo ejecutará aplicaciones que estén firmadas y notarizadas. Si utilizas alguna otra configuración de firma, consulta Running Godot apps on macOS para conocer soluciones alternativas.

Para notarizar una aplicación, debes tener un certificado válido de Apple Developer ID.

If you have an Apple Developer ID Certificate and exporting from macOS

Install Xcode command line tools and open Xcode at least once or run the sudo xcodebuild -license accept command to accept license agreement.

To sign exported app

  • Select Xcode codesign in the Code Signing > Codesign option.

  • Set valid Apple ID certificate identity (certificate "Common Name") in the Code Signing > Identity section.

To notarize exported app

  • Select Xcode altool in the Notarization > Notarization option.

  • Disable the Debugging entitlement.

  • Set valid Apple ID login / app. specific password or App Store Connect API UUID / Key in the Notarization section.

Puedes utilizar el comando xcrun notarytool history para verificar el estado de la notarización y el comando xcrun notarytool log {ID} para descargar el registro de notarización.

Si encuentras problemas de notarización, consulta Resolución de problemas comunes de notarización para obtener más información.

Después de que se haya completado la notarización, "grapa el ticket" (staple the ticket) al proyecto exportado. Puedes encontrar más información sobre cómo hacerlo en Agregando el ticket de notarización a tu proyecto exportado.

If you have an Apple Developer ID Certificate and exporting from Linux or Windows

Install PyOxidizer rcodesign, and configure the path to rcodesign in the Editor Settings > Export > macOS > rcodesign.

To sign exported app

  • Select PyOxidizer rcodesign in the Code Signing > Codesign option.

  • Set valid Apple ID PKCS #12 certificate file and password in the Code Signing section.

To notarize exported app

  • Select PyOxidizer rcodesign in the Notarization > Notarization option.

  • Disable the Debugging entitlement.

  • Set valid App Store Connect API UUID / Key in the Notarization section.

You can use the rcodesign notary-log command to check notarization status.

After notarization is completed, use the rcodesign staple command to staple the ticket to the exported project.

Si no tienes un certificado de Apple Developer ID

  • Select Built-in (ad-hoc only) in the Code Signing > Codesign option.

  • Select Disabled in the Notarization > Notarization option.

In this case Godot will use a ad-hoc signature, which will make running an exported app easier for the end users, see the Running Godot apps on macOS page for more information.

Opciones de firmado

Opcion

Descripción

Codesign

Tool to use for code signing.

Identidad

The "Full Name" or "Common Name" of the signing identity, store in the macOS keychain. 1

Certificate File

The PKCS #12 certificate file. 2

Certificate Password

Password for the certificate file. 2

Custom Options

Array of command line arguments passed to the code signing tool.

1

This option is visible only when signing with Xcode codesign.

2(1,2)

These options are visible only when signing with PyOxidizer rcodesign.

Opciones de Notorización

Opcion

Descripción

Notarization

Tool to use for notarization.

Nombre de Apple ID

Apple ID account name (email address). 3

Contraseña Apple ID

Contraseña de Apple ID específica de la aplicación. Ver Using app-specific passwords para habilitar el factor doble de autenticación y crear la contraseña de la app. 3

*Apple Team ID

Team ID ("Organization Unit"), if your Apple ID belongs to multiple teams (optional). 3

API UUID

Apple App Store Connect API issuer UUID.

API Key

Apple App Store Connect API key.

Nota

You should set either Apple ID Name/Password or App Store Connect API UUID/Key.

3(1,2,3)

These options are visible only when notarizing with Xcode altool.

Consulta Notarizing macOS Software Before Distribution para obtener más información.

Privilegios

Privilegios de Ejecución Reforzada

Los "Privilegios de Ejecución Reforzada" (Hardened Runtime entitlements) administran las opciones de seguridad y la política de acceso a recursos. Consulta Hardened Runtime para obtener más información al respecto.

privilegio

Descripción

Allow JIT Code Execution 4

Permite crear memoria escribible y ejecutable para el código JIT. Si estás utilizando complementos con código nativo dinámico o auto-modificable, habilítalos según la documentación del complemento.

Allow Unsigned Executable Memory 4

"Permitir memoria ejecutable no firmada" permite crear memoria escribible y ejecutable sin restricciones de JIT. Si estás utilizando complementos con código nativo dinámico o auto-modificable, habilítalos según la documentación del complemento.

Allow DYLD Environment Variables 4

Allows app to uss 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.

Desactivar la validación de bibliotecas

Allows app to load arbitrary libraries and frameworks. Enable it if you are using GDExtension add-ons or ad-hoc signing, or want to support user-provided external add-ons.

Entrada de Audio

Habilita esta opción si necesitas utilizar el micrófono u otras fuentes de entrada de audio. Si está habilitado, también debes proporcionar un mensaje de uso en la opción privacy/microphone_usage_description.

Cámara

Habilita esta opción si necesitas utilizar la cámara. Si está habilitada, también debes proporcionar un mensaje de uso en la opción privacy/camera_usage_description.

Localización

Habilita esta opción si necesitas utilizar la información de ubicación de los Servicios de ubicación (Location Services). Si está habilitada, también debes proporcionar un mensaje de uso en la opción privacy/location_usage_description.

Libro de Direcciones

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.

Calendarios

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 de Apple

5 Enable to allow app to send Apple events to other apps.

Depuración

6 You can temporarily enable this entitlement to use native debugger (GDB, LLDB) with the exported app. This entitlement should be disabled for production export.

4(1,2,3)

Los privilegios de Allow JIT Code Execution, Allow Unsigned Executable Memory y Allow DYLD Environment Variables están siempre habilitados para las exportaciones de Godot Mono y no son visibles en las opciones de exportación.

5(1,2,3,4)

Estas características no son compatibles de forma predeterminada en Godot, así que habilítalas solo si estás utilizando complementos que las requieran.

6

Para notarizar una aplicación, debes desactivar el privilegio Debugging.

Privilegio de la Caja de Arena de la Aplicación

La "Caja de Arena de la Aplicación" restringe el acceso a los datos del usuario, la red y los dispositivos. Las aplicaciones en un entorno de caja de arena no pueden acceder a la mayoría del sistema de archivos, no pueden utilizar cuadros de diálogo personalizados para archivos y no pueden ejecutar binarios (usando OS.execute y OS.create_process) fuera del paquete .app. Consulta App Sandbox para obtener más información.

Nota

Para distribuir una aplicación a través de la App Store, debes habilitar la Caja de Arena de la Aplicación (App Sandbox).

privilegio

Descripción

Activar

Habilita App Sandbox (Caja de arena de la aplicación).

Servidor de Red

Habilitar para permitir que la aplicación escuche conexiones de red entrantes.

Cliente de Red

Habilitar para permitir que la aplicación establezca conexiones de red salientes.

Dispositivo USB

Habilitar para permitir que la aplicación interactúe con dispositivos USB. Este privilegio es necesario para utilizar controladores con cable.

Dispositivo Bluetooth

Habilitar para permitir que la aplicación interactúe con dispositivos Bluetooth. Este privilegio es necesario para utilizar controladores inalámbricos.

Files Downloads 7

Permite acceso de lectura o escritura a la carpeta de 'Descargas' del usuario.

Files Pictures 7

Permite acceso de lectura o escritura a la carpeta de 'Imágenes' del usuario.

Files Music 7

Permite acceso de lectura o escritura a la carpeta de 'Música' del usuario.

Files Movies 7

Permite acceso de lectura o escritura a la carpeta de 'Películas' del usuario.

Files User Selected 7

Permite acceso de lectura o escritura a una carpeta arbitraria. Para obtener acceso, la carpeta debe ser seleccionada por el usuario desde el cuadro de diálogo de archivos nativo.

Ejecutable Auxiliar

Lista de ejecutables auxiliares a incrustar en el paquete de la aplicación. Las aplicaciones en un entorno de caja de arena solo pueden ejecutar estos ejecutables.

7(1,2,3,4,5)

Opcionalmente, puedes proporcionar mensajes de uso para varias carpetas en las opciones privacy/*_folder_usage_description.

Nota

Puedes anular los privilegios predeterminados seleccionando un archivo de privilegios personalizado. En este caso, se ignorarán todos los demás privilegios.

Variables de entorno

You can use the following environment variables to set export options outside of the editor. During the export process, these override the values that you set in the export menu.

macOS export environment variables

Export option

Environment variable

Encryption / Encryption Key

GODOT_SCRIPT_ENCRYPTION_KEY

Options / Codesign / Certificate File

GODOT_MACOS_CODESIGN_CERTIFICATE_FILE

Options / Codesign / Certificate Password

GODOT_MACOS_CODESIGN_CERTIFICATE_PASSWORD

Options / Codesign / Provisioning Profile

GODOT_MACOS_CODESIGN_PROVISIONING_PROFILE

Options / Notarization / API UUID

GODOT_MACOS_NOTARIZATION_API_UUID

Options / Notarization / API Key

GODOT_MACOS_NOTARIZATION_API_KEY

Options / Notarization / API Key ID

GODOT_MACOS_NOTARIZATION_API_KEY_ID

Options / Notarization / Apple ID Name

GODOT_MACOS_NOTARIZATION_APPLE_ID_NAME

Options / Notarization / Apple ID Password

GODOT_MACOS_NOTARIZATION_APPLE_ID_PASSWORD