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ó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.

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), la Notarización (Notarization), el Entorno de ejecución reforzado (Hardened Runtime) y la Marca de tiempo (Timestamp), y deshabilita el permiso de Depuració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.

1

Deja vacía la opción de Identidad para utilizar la firma ad-hoc.

2(1,2,3)

Esta opción solo es visible al exportar desde una computadora con macOS.

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 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.

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.