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.
Checking the stable version of the documentation...
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.
Las aplicaciones de macOS se exportan como un paquete .app
, que es una carpeta con una estructura específica que almacena el ejecutable, las bibliotecas y todos los archivos del proyecto. Este paquete se puede exportar tal cual, empaquetado en un archivo ZIP o imagen de disco DMG (solo compatible al exportar desde una computadora que ejecuta macOS).
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ónApplication
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 theCode 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 theNotarization > 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 theCode 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 theNotarization > 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 theCode Signing > Codesign
option.Select
Disabled
in theNotarization > 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. |
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 |
Apple ID app-specific password. See Using app-specific passwords to enable two-factor authentication and create app password. 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.
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
yAllow 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.
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 |