This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Crear un bundle de un juego para iOS solo está disponible en la versión para Mac del editor Defold.
iOS requiere que cualquier app que crees y quieras ejecutar en tu teléfono o tablet deba estar firmada con un certificado emitido por Apple y un perfil provisional. Este manual explica los pasos necesarios para crear un bundle de tu juego para iOS. Durante el desarrollo, suele ser preferible ejecutar tu juego mediante la app de desarrollo, ya que te permite recargar contenido y código en caliente directamente en tu dispositivo.
La seguridad asociada con las apps iOS consta de varios componentes. Puedes acceder a las herramientas necesarias registrándote en el iOS Developer Program de Apple. Cuando te hayas inscrito, ve al Developer Member Center de Apple.

La sección Certificates, Identifiers & Profiles contiene todas las herramientas que necesitas. Desde aquí puedes crear, eliminar y editar:
some.prefix.*) que pueden usarse con varias apps. Los App IDs pueden contener información de Application Services, por ejemplo si la app activa la integración con Passbook, Game Center, etc. Esos App IDs no pueden ser identificadores wildcard. Para que los Application Services funcionen, el identificador de bundle de tu aplicación debe coincidir con el identificador del App ID.Al firmar tus juegos y apps en Defold, necesitas un certificado válido y un perfil provisional válido.
Algunas de las cosas que puedes hacer en la página de inicio de Member Center también puedes realizarlas desde el entorno de desarrollo Xcode, si lo tienes instalado.

Si no tienes Xcode instalado, puedes encontrar el identificador en iTunes. Haz click en el símbolo de dispositivos y selecciona tu dispositivo.

Desde Xcode 7, cualquiera puede instalar Xcode y desarrollar en dispositivo de forma gratuita. No tienes que registrarte en el iOS Developer Program. En su lugar, Xcode emitirá automáticamente un certificado para ti como desarrollador (válido durante 1 año) y un perfil provisional para tu app (válido durante una semana) en tu dispositivo específico.
Anota el identificador de bundle, ya que debes usar el mismo identificador de bundle en tu proyecto Defold.
Asegúrate de que Xcode haya creado un Provisioning Profile y un Signing Certificate para la app.

Cuando hayas verificado que la app funciona, búscala en tu disco. Puedes ver la ubicación de la build en el Build report del “Report Navigator”.

Localiza la app, haz click derecho sobre ella y selecciona Show Package Contents.


Este archivo de perfil provisional puede usarse junto con tu identidad de firmado de código para firmar apps en Defold durante una semana.
Cuando el perfil provisional expire, debes crear la build de la app otra vez en Xcode y obtener un nuevo archivo de perfil provisional temporal como se describió arriba.
Cuando tengas la identidad de firmado de código y el perfil provisional, estarás listo para crear desde el editor un bundle de aplicación independiente para tu juego. Simplemente selecciona Project ▸ Bundle... ▸ iOS Application... en el menú.

Selecciona tu identidad de firmado de código y busca tu archivo de mobile provisioning. Selecciona las arquitecturas (32 bits, 64 bits y el simulador de iOS) para las que quieres crear el bundle, así como la variante (Debug o Release). Opcionalmente puedes desmarcar la casilla Sign application para omitir el proceso de firmado y firmar manualmente en una etapa posterior.
Debes desmarcar la casilla Sign application al probar tu juego en el simulador de iOS. Podrás instalar la aplicación, pero no arrancará.
Pulsa Create Bundle y se te pedirá que especifiques en qué lugar de tu computadora se creará el bundle.

Puedes especificar qué icono usar para la app, el storyboard de pantalla de lanzamiento, etc. en el archivo de configuración del proyecto game.project, en la sección iOS.
Cuando creas un bundle de un juego, debes elegir qué tipo de motor quieres usar. Tienes tres opciones básicas:
Estas diferentes versiones también se denominan Build variants.
Cuando eliges Project ▸ Build, siempre obtendrás la versión de depuración.
Este tipo de ejecutable se usa normalmente durante el desarrollo de un juego, ya que incluye varias funcionalidades útiles de depuración:
print() y desde el logging de extensiones nativas que use dmLogInfo(), dmLogError() y similares. Aprende cómo leer estos logs en el manual de logs del juego y del sistema.Esta variante tiene las funcionalidades de depuración deshabilitadas. Esta opción debe elegirse cuando el juego esté listo para publicarse en la tienda de aplicaciones o compartirse con jugadores por otros medios. No se recomienda publicar un juego con las funcionalidades de depuración habilitadas por varias razones:
Este ejecutable se ejecuta sin gráficos ni sonido. Esto significa que puedes ejecutar las pruebas unitarias o de humo del juego en un servidor de CI, o incluso usarlo como servidor de juego en la nube.
Puedes instalar y ejecutar el bundle creado usando las casillas “Install on connected device” y “Launch installed app” del editor en el diálogo Bundle:

Para que esta funcionalidad funcione, necesitas tener instalada la herramienta de línea de comando ios-deploy. La forma más simple de instalarla es usando Homebrew:
$ brew install ios-deploy
Si el editor no puede detectar la ubicación de instalación de la herramienta ios-deploy, tendrás que especificarla en Preferences.
Creas un archivo storyboard usando Xcode. Inicia Xcode y crea un proyecto nuevo. Selecciona iOS y Single View App:

Haz click en Next y continúa para configurar tu proyecto. Ingresa un Product Name:

Haz click en Create para finalizar el proceso. Tu proyecto ya está creado y podemos continuar para crear el storyboard:

Arrastra y suelta una imagen para importarla al proyecto. Luego selecciona Assets.xcassets y suelta la imagen en Assets.xcassets:

Abre LaunchScreen.storyboard y haz click en el botón de suma (+). Escribe “imageview” en el diálogo para encontrar el componente ImageView.

Arrastra el componente Image View al storyboard:

Selecciona la imagen que agregaste previamente a Assets.xcassets desde el desplegable Image:

Posiciona la imagen y realiza cualquier otro ajuste que necesites, quizá agregando un Label u otro elemento de interfaz. Cuando termines, establece el esquema activo en “Build -> Any iOS Device (arm64, armv7)” (o “Generic iOS Device”) y selecciona Product -> Build. Espera a que finalice el proceso de build.
Si solo tienes la opción arm64 en “Any iOS Device (arm64)”, cambia iOS Deployment target a 10.3 en la configuración “Project -> Basic -> Deployment”. Esto hará que tu storyboard sea compatible con dispositivos armv7 (por ejemplo iPhone5c).
Si usas imágenes en el storyboard, no se incluirán automáticamente en tu LaunchScreen.storyboardc. Usa el campo Bundle Resources en game.project para incluir recursos.
Por ejemplo, crea la carpeta LaunchScreen en el proyecto Defold y una carpeta ios dentro (la carpeta ios es necesaria para incluir estos archivos solo en bundles de iOS), luego coloca tus archivos en LaunchScreen/ios/. Agrega esta ruta en Bundle Resources.

El último paso es copiar el archivo compilado LaunchScreen.storyboardc a tu proyecto Defold. Abre Finder en la siguiente ubicación y copia el archivo LaunchScreen.storyboardc a tu proyecto Defold:
/Library/Developer/Xcode/DerivedData/YOUR-PRODUCT-NAME-cbqnwzfisotwygbybxohrhambkjy/Build/Intermediates.noindex/YOUR-PRODUCT-NAME.build/Debug-iphonesimulator/YOUR-PRODUCT-NAME.build/Base.lproj/LaunchScreen.storyboardc
El usuario del foro Sergey Lerg preparó un video tutorial que muestra el proceso.
Una vez que tengas el archivo storyboard, puedes referenciarlo desde game.project.
Usar un asset catalog es la forma preferida por Apple de gestionar los iconos de tu aplicación. De hecho, es la única forma de proporcionar el icono usado en la ficha de la App Store. Creas un asset catalog de la misma manera que un storyboard, usando Xcode. Inicia Xcode y crea un proyecto nuevo. Selecciona iOS y Single View App:

Haz click en Next y continúa para configurar tu proyecto. Ingresa un Product Name:
![]()
Haz click en Create para finalizar el proceso. Tu proyecto ya está creado y podemos continuar para crear el asset catalog:
![]()
Arrastra y suelta imágenes en las casillas vacías que representan los distintos tamaños de icono admitidos:
![]()
No agregues iconos para Notifications, Settings ni Spotlight.
Cuando termines, establece el esquema activo en “Build -> Any iOS Device (arm64)” (o “Generic iOS Device”) y selecciona Product -> Build. Espera a que finalice el proceso de build.
Asegúrate de crear la build para “Any iOS Device (arm64)” o “Generic iOS Device”; de lo contrario, obtendrás el error ERROR ITMS-90704 al subir tu build.
![]()
El último paso es copiar el archivo compilado Assets.car a tu proyecto Defold. Abre Finder en la siguiente ubicación y copia el archivo Assets.car a tu proyecto Defold:
/Library/Developer/Xcode/DerivedData/YOUR-PRODUCT-NAME-cbqnwzfisotwygbybxohrhambkjy/Build/Products/Debug-iphoneos/Icons.app/Assets.car
Una vez que tengas el archivo asset catalog, puedes referenciarlo a él y a los iconos desde game.project:
![]()
No es necesario referenciar el icono de la App Store desde game.project. Se extrae automáticamente del archivo Assets.car al subir a iTunes Connect.
El editor escribe un archivo .ipa, que es un bundle de aplicación iOS. Para instalar el archivo en tu dispositivo, puedes usar una de las siguientes herramientas:
ios-deployApple Configurator 2 desde el macOS App StoreTambién puedes usar la herramienta de línea de comando xcrun simctl para trabajar con los simuladores de iOS disponibles mediante Xcode:
# mostrar una lista de dispositivos disponibles
xcrun simctl list
# arrancar un simulador de iPhone X
xcrun simctl boot "iPhone X"
# instalar your.app en un simulador arrancado
xcrun simctl install booted your.app
# iniciar el simulador
open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
El manifiesto de privacidad es una lista de propiedades que registra los tipos de datos recopilados por tu app o por un SDK de terceros, y las API con razones requeridas que usa tu app o el SDK de terceros. Para cada tipo de dato que recopila tu app o el SDK de terceros, y para cada categoría de API con razones requeridas que utiliza, la app o el SDK de terceros debe registrar los motivos en su archivo de manifiesto de privacidad incluido en el bundle.
Defold proporciona un manifiesto de privacidad predeterminado mediante el campo Privacy Manifest del archivo game.project. Al crear un bundle de la aplicación, el manifiesto de privacidad se fusionará con cualquier manifiesto de privacidad de las dependencias del proyecto y se incluirá en el bundle de la aplicación.
Lee más sobre los manifiestos de privacidad en la documentación oficial de Apple.
Cuando envíes tu juego a la App Store, se te pedirá que proporciones información de cumplimiento de exportación con respecto al uso de cifrado en tu juego. Apple explica por qué esto es necesario:
“Cuando envías tu app a TestFlight o a la App Store, subes tu app a un servidor en Estados Unidos. Si distribuyes tu app fuera de EE. UU. o Canadá, tu app está sujeta a las leyes de exportación de EE. UU., sin importar dónde tenga sede tu entidad legal. Si tu app usa, accede, contiene, implementa o incorpora cifrado, esto se considera una exportación de software de cifrado, lo que significa que tu app está sujeta a los requisitos de cumplimiento de exportación de EE. UU., así como a los requisitos de cumplimiento de importación de los países donde distribuyes tu app.”
El motor de videojuegos Defold usa cifrado para los siguientes propósitos:
Estos usos de cifrado en el motor Defold están exentos de los requisitos de documentación de cumplimiento de exportación según las leyes de Estados Unidos y de la Unión Europea. La mayoría de los proyectos Defold seguirán exentos, pero agregar otros métodos criptográficos puede cambiar este estado. Es tu responsabilidad asegurarte de que tu proyecto cumpla con los requisitos de estas leyes y las reglas de la App Store. Consulta el Export Compliance Overview de Apple para obtener más información.
Si crees que tu proyecto está exento, define la clave ITSAppUsesNonExemptEncryption como False en el Info.plist del proyecto. Consulta Manifiestos de aplicación para obtener más detalles.
A: Asegúrate de que utilizas el mismo identificador de bundle en tu proyecto Defold así como el que usaste en el proyecto Xcode cuando generaste el perfil provisional del móvil.
A: Desde Inspect the entitlements of a built app:
codesign -d --ent :- /path/to/the.app
A: Desde Inspecting a profile’s entitlements:
security cms -D -i /path/to/iOSTeamProfile.mobileprovision