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 Compilar 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 packed in a DMG disk image (only supported when exporting from macOS).
Universal binaries for macOS support both Intel x86_64 and ARM64 (Apple Silicon) architectures.
Advertencia
Due to file system limitations, .app bundles exported from Windows lack the
executable flag and won't run on macOS. Projects exported as .zip are not
affected by this issue. To run .app bundles exported from Windows on macOS,
transfer the .app to a device running macOS or Linux and use the
chmod +x {executable_name} terminal command to add the executable permission.
The main executable located in the Contents/MacOS/ subfolder, as well
as optional helper executables in the Contents/Helpers/ subfolder, should have
the executable permission for the .app bundle to be valid.
Requerimientos
Descarga las plantillas de exportación de Godot. Usa el menu de Godot:
Editor > Manage Export Templates.Se debe establecer un
identificador de paqueteválido y único en la secciónApplicationde 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 codesignin theCode Signing > Codesignoption.Set valid Apple ID certificate identity (certificate "Common Name") in the
Code Signing > Identitysection.
To notarize exported app
Select
Xcode altoolin theNotarization > Notarizationoption.Disable the
Debuggingentitlement.Set valid Apple ID login / app. specific password or App Store Connect API UUID / Key in the
Notarizationsection.
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 rcodesignin theCode Signing > Codesignoption.Set valid Apple ID PKCS #12 certificate file and password in the
Code Signingsection.
To notarize exported app
Select
PyOxidizer rcodesignin theNotarization > Notarizationoption.Disable the
Debuggingentitlement.Set valid App Store Connect API UUID / Key in the
Notarizationsection.
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 theCode Signing > Codesignoption.Select
Disabledin theNotarization > Notarizationoption.
In this case Godot will use an 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. |
Opciones de Notorización
Opcion |
Descripción |
|---|---|
Notarización |
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.
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 addons con código nativo dinámico o auto-modificable, habilítalos según la documentación del addon. |
Allow Unsigned Executable Memory [4] |
"Permitir memoria ejecutable no firmada" permite crear memoria escribible y ejecutable sin restricciones de JIT. Si estás utilizando addons con código nativo dinámico o auto-modificable, habilítalos según la documentación del addon. |
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. |
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.
Estas características no son compatibles de forma predeterminada en Godot, así que habilítalas solo si estás utilizando addons que las requieran.
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. |
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.
Export option |
Environment variable |
|---|---|
Encryption / Encryption Key |
|
Options / Codesign / Certificate File |
|
Options / Codesign / Certificate Password |
|
Options / Codesign / Provisioning Profile |
|
Options / Notarization / API UUID |
|
Options / Notarization / API Key |
|
Options / Notarization / API Key ID |
|
Options / Notarization / Apple ID Name |
|
Options / Notarization / Apple ID Password |
|
Opciones de exportación
You can find a full list of export options available in the EditorExportPlatformMacOS class reference.