Un breve tutorial explicando como configurar y montar un entorno de desarrollo para compilar y empaquetar para iOS de manera remota en Unreal Engine 4 (v4.22+), para realizar pruebas, sin invertir dinero ni tiempo en la licencia de desarrollador para iOS.
Creando los archivos de aprovisinamiento
Configuración remota del proyecto para iOS
Mobileprovision tester
Configurando la máquina de compilación remota (Mac)
Perfil de usuario
El usuario de la máquina debe estar protegido mediante contraseña (el control remoto por SSH no funcionará sin no es así). El nombre de usuario no debe contener espacios ni caracteres especiales.
En Preferencias de sistema > Compartir
Debemos tener activos.
- Compartir Archivos
- Sessión remota
- Administración remota.
RSync
Rsync es una herramienta utilizada por Unreal Engine para transferir y sincronizar archivos de manera eficiente entre un equipo y un disco externo a traves de una red (comparando las fechas de modificación y los tamaños de los archivos).
Antes de ponernos a configurar el proyecto de UE4 tenemos que configurar Rsync en la máquina Mac.
Tenemos que crear un archivo rsync.plist en /Library/LaunchDaemons
Nos aseguraremos de que los permisos de este archivo sean -rw-r--r--
y copiaremos dentro el siguiente contenido:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Disabled</key> <false/> <key>Label</key> <string>rsync</string> <key>Program</key> <string>/usr/bin/rsync</string> <key>ProgramArguments</key> <array> <string>/usr/bin/rsync</string> <string>--daemon</string> </array> <key>inetdCompatibility</key> <dict> <key>Wait</key> <false/> </dict> <key>Sockets</key> <dict> <key>Listeners</key> <dict> <key>SockServiceName</key> <string>rsync</string> <key>SockType</key> <string>stream</string> </dict> </dict> </dict> </plist>
…y un archivo rsyncd.conf en /etc/
Comprobaremos tambien sus permisos rw-r–r– y le añadimos:
[root] path = / hosts allow = 192.168.1.0/24 uid = root gid = wheel read only = false comment = Root volume
La linea de Hosts contiene los rangos de direccion ip, separados por comas, de las máquinas que podrán usar esta máquina Mac para las build remotas. Nosotros tenemos todas las máquinas en una red local con ip 192.168.1.x
Para comprobar la carga del módulo podemos ejecutar en un Terminal:
sudo launchctl load /Library/LaunchDaemons/rsync.plist
Finalmente reiniciamos la máquina Mac.
Configurando la máquina del proyecto UE4 (Windows)
iTunes
El desarrollo para IOS de UE4 ahora requiere iTunes 12 o superior, por lo tanto necesitamos descargar e instalar la versión para escritorio de iTunes.
Hacemos scroll hasta la frase Looking for other version? y hacemos click en Windows
Y download iTunes for Windows
Si después de la instalación UE4 continua diciendo que iTunes no está instalado tendremos que abrir el editor de registro de Windows y comprobar si nos falta la entrada necesaria para UE4.
Abrimos regedit y nos vamos a HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apple Inc.\Apple Mobile Device Support\Shared
Necesitamos una entrada MobileDeviceDLL con la ruta a MobileDevice.dll, crearemos un nuevo Valor de cadena si no tenemos esta entrada en el registro.
Esta .dll puede encontrarse en C:\Program Files\Common Files\Apple\Mobile Device Support después de la instalación de iTunes
DeltaCopy
Para poder usar RSync en plataforma Windows necesitamos instalar DeltaCopy
Ejecutamos el DeltaC.exe y lo configuramos.
- Profile Name: Debe ser el mismo que el usuario de la máquina Mac.
- Server IP: La dirección IP de la máquina Mac
- Directory Name: root
Ahora ya podemos empezar a configurar el proyecto de Unreal Engine 4 para poder utilizar la compilación y empaquetado remoto para iOS
En el menu superior Edit > Project settings
En la sección Platforms > iOS
Mobile Provision > Hacemos clik en el botón Import Provision
Seleccionamos el archivo .mobileprovision creado en el tutorial anterios y Abrir
Después hacemos click en el botón Import Certificate
Seleccionamos el archivo .p12 y Abrir
Durante el proceso de importación del certificado un cuadro de dialogo aparecerá pidiendonos la contraseña del certificado. Tendremos que poner la contraseña que utilizamos en el anterior tutorial a la hora de exportar el certificado.
Ahora el sección Mobile Provision deben aparecer dos entradas nuevas con estado Válido.
Tenemos que comprobar que el Bundle Identifier comienza con el nombre de la compañia utilizada en el archivo de aprovisionamiento
Nos desplazamos hasta la sección Build > desplegamos Remote Build Options y rellenamos los siguientes campos:
- Remote Server Name: La direccion a la máquina Mac
- RSync User Name: El nombre del perfil utilizado en DeltaCopy
- Delta Copy Install Path: Ruta al ejecutable del programa DeltaCopy
Ahora hacemos click en el botón Generate SSH Key. Este proceso conectará a almáquina Mac para generar la clve SSH y la copiará de vuelta a una carpeta en nuestra máquina Windows
Seguimos las instrucciones de la consola hasta el final, pero dejando phassphrase vacía.
Después de esto el campo Found Existing SSH permission file habrá sido rellenado automáticamente con la ruta al archivo local que contiene la clave SSH.
Ahora ya podemos empaquetar nuestro proyecto para iOS mediante una máquina remota desde el menu superior File > Package Project > iOS
Y esto es todo, ahora podemos continuar trabajando con el entorno en nuestra plataforma Windows y empaquetar el proyecto para plataforma iOS sin tener que cambiar físicamente a la máquina Mac, y además sin gastar dinero en una licencia de desarrollo iOS solo con fines de testing
Eliminando archivos de aprovisionamiento
Si queremos eliminar un archivo de aprovisionamiento que no vamos a utilizar o un certificado en plataforma Windows nos vamos a:
C:\Users\xxxx\AppData\Local\Apple Computer\MobileDevice\Provisioning Profiles\
Seleccionamos el .mobileprovision y simplemente lo borramos del disco
Para eliminar un certificado abrimos una ventana de Símbolo de sistema y ejecutamos Certmgr para abrir la herrmienta que gestiona los certificados de usuario
En Personal > Certificados
Click derecho sobre el certificado y Eliminar
Parte 3: Mobileprovision tester
2020/10/06 – Actualizado para incluir requerimiento de iTunes requirements y UE4 4.25
Te puede interesar:
Ayudanos con este blog!
El último año he estado dedicando cada vez más tiempo a la creación de tutoriales, en su mayoria sobre desarrollo de videojuegos. Si crees que estos posts te han ayudado de alguna manera o incluso inspirado, por favor considera ayudarnos a mantener este blog con alguna de estas opciones. Gracias por hacerlo posible!