Exportando para macOS¶
Ver también
Esta página describe cómo exportar un proyecto de Godot a macOS. Si estás buscando compilar binarios del editor o plantillas de exportación desde el código fuente, lee 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¶
Para habilitar la firma de código con Apple Developer ID y la notarización, debes exportar desde una computadora que ejecute macOS con las herramientas de línea de comandos de Xcode instaladas.
La firma de código ad-hoc es compatible en todas las plataformas sin necesidad de herramientas adicionales.
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.
Si tienes un certificado válido de Apple Developer ID¶
Exporta tu proyecto desde una computadora que ejecute macOS y tenga instaladas las herramientas de línea de comandos de Xcode.
Habilita la
Firma de código
(Code Signing), laNotarización
(Notarization), elEntorno de ejecución reforzado
(Hardened Runtime) y laMarca de tiempo
(Timestamp), y deshabilita el permiso deDepuración
(Debug).Proporciona las credenciales válidas de tu Apple ID y la identidad del certificado.
Si la opción de Notarización
está habilitada, Godot subirá automáticamente el proyecto exportado para su notarización.
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.
Si no tienes un certificado de Apple Developer ID¶
Mantén habilitada la opción de Firma de código
(Code Signing) y deja vacía la opción de Identidad
(cuando se exporta desde una computadora que ejecuta macOS, en otras plataformas esta opción está oculta). En este caso, Godot utilizará una firma ad-hoc, lo que facilitará la ejecución de la aplicación exportada para los usuarios finales. Consulta la página Running Godot apps on macOS para obtener más información.
Opciones de firmado¶
Opcion |
Descripción |
---|---|
Activar |
Habilita el firmado de código. |
Identidad |
El "Nombre completo" o "Nombre común" de la identidad de firma, almacenada en el llavero de macOS. 1 2 |
Sello de tiempo |
Solicita a un servidor de marca de tiempo que autentique el momento de la firma. Requerido para la notarización. 2 |
Entorno de ejecución fortificado |
Activa el "Entorno de ejecución fortificado". Requerido para la notarización. 2 |
Reemplazar Firma Existente |
Reemplaza las firmas existentes de las bibliotecas GDNative y los ejecutables auxiliares incrustados. |
Nota
Para notarizar una aplicación, debes habilitar el Entorno de ejecución fortificado
y la Marca de tiempo
.
Las opciones Entorno de ejecución fortificado
y Marca de tiempo
no son compatibles con la firma ad-hoc y serán ignoradas.
Opciones de Notorización¶
Opcion |
Descripción |
---|---|
Activar |
Activa la carga automática para la notarización. |
Nombre de Apple ID |
Nombre de cuenta de Apple ID (dirección de correo electrónico) |
Contraseña Apple ID |
Contraseña específica de la aplicación para Apple ID. Consulta Uso de contraseñas específicas de la aplicación para habilitar la autenticación de dos factores y crear una contraseña de aplicación. |
*Apple Team ID |
Team ID, si tu Apple ID pertenece a múltiples equipos |
Consulta Notarizing macOS Software Before Distribution para obtener más información.
Nota
La notarización es compatible al exportar desde una computadora con macOS, estas opciones están ocultas en otras plataformas.
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 |
---|---|
Permitir la ejecución de código JIT 3 |
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. |
Permitir memoria ejecutable no firmada 3 |
"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. |
Permite variables de entorno DYLD 3 |
Permitir que la aplicación utilice variables de entorno del enlazador dinámico para inyectar código. Si estás utilizando complementos con código nativo dinámico o auto-modificable, habilítalos según la documentación del complemento. |
Desactivar la validación de bibliotecas |
"Permitir que la aplicación cargue bibliotecas y frameworks arbitrarios". Actívalo si estás utilizando complementos GDNative y una firma ad hoc, o si deseas admitir complementos externos proporcionados por el usuario. |
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 |
[4]_Habilitar para permitir el acceso a los contactos en la libreta de direcciones del usuario. Si está habilitado, también debes proporcionar un mensaje de uso en la opción privacy/address_book_usage_description. |
Calendarios |
4 Habilitar para permitir el acceso al calendario del usuario, si está habilitado, también debes proporcionar un mensaje de uso en la opción privacy/calendar_usage_description. |
Biblioteca de Fotos |
4 Habilitar para permitir el acceso a la biblioteca de fotos del usuario. Si está habilitado, también debes proporcionar un mensaje de uso en la opción privacy/photos_library_usage_description. |
Eventos de Apple |
4 Habilitar para permitir que la aplicación envíe eventos de Apple a otras aplicaciones. |
Depuración |
5 Puedes habilitar temporalmente este privilegio para utilizar un depurador nativo (GDB, LLDB) con la aplicación exportada. Este privilegio debería desactivarse para la exportación de producción. |
- 3(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.- 4(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.
- 5
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. |
Descarga de Archivos 6 |
Permite acceso de lectura o escritura a la carpeta de 'Descargas' del usuario. |
Archivo de Imágenes 6 |
Permite acceso de lectura o escritura a la carpeta de 'Imágenes' del usuario. |
Archivos de Música 6 |
Permite acceso de lectura o escritura a la carpeta de 'Música' del usuario. |
Archivos de Video 6 |
Permite acceso de lectura o escritura a la carpeta de 'Películas' del usuario. |
Archivos de Usuario Seleccionados 6 |
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. |
- 6(1,2,3,4,5)
Opcionalmente, puedes proporcionar mensajes de uso para varias carpetas en las opciones privacy/*_folder_usage_description.
Puedes anular los privilegios predeterminados seleccionando un archivo de privilegios personalizado. En este caso, se ignorarán todos los demás privilegios.