Buenos días a todos.
Esta semana quiero dirigir mi punto de atención a los desarrolladores de Unity 3D 5 que exportan sus Apps para iOS, y de una manera práctica, explicarles el problema que hemos tenido en el equipo técnico de Mítica Technology (al que pertenezco) respecto al gran tamaño de la App en iOS y aportando una solución al respecto.
En la versión de nuestra App “MiRA Realidad Aumentada” 1.2, la App ocupaba 97,3 MB. En la nueva versión, al exportar el proyecto desde el motor de videojuegos Unity 5 y generando el proyecto de XCODE correspondiente, el archivo “.ipa” de la App ocupaba nada más y nada menos que 87,4 MB. Mientras que en la versión de Android, exactamente igual, ocupa unos 25 MB aproximadamente.
Esta reducción ha sido considerable teniendo en cuenta que se han añadido nuevas funcionalidades y se han optimizado “Assets” del proyecto. Pero lo realmente curioso, es que según pudimos ver en el log de Unity 3D (ubicado aquí en MAC: ~/Library/Logs/Unity/Editor.log) la App ocupaba 32 MB al salir de Unity 5.
¿Entonces dónde está el problema? Pues en nuestro caso nos sorprendimos bastante cuando vimos que el problema es que XCODE generaba las “LaunchImage” en formato PNG para adaptarlas a los diferentes formatos de iPhone e iPad, introduciendo en el archivo “.ipa” varias imágenes de aproximadamente 2,5 MB cada una.
La solución consistió en optimizar las imágenes (500 KB como máximo la imagen más grande) una vez exportado de Unity antes de realizar la acción “Product/Archive” en XCODE, consiguiendo un archivo “.ipa” de 37 MB, bastante más aceptable ya para nosotros.
Otro de los problemas con los que nos encontramos fue que intentamos optimizar las imágenes con Adobe Photoshop CC guardando las imágenes PNG para web, pero no reducía nada, así que tuvimos que acudir a nuestro amigo GOOGLE, y encontramos una herramienta totalmente gratuita, y sólo disponible para MAC, que funciona muy bien para realizar este tipo de tareas. Esta herramienta se llama ImageAlpha y se puede descargar de aquí.
Para ver los archivos que hay que optimizar con seguridad, os recomiendo que exportéis la App como archivo “.ipa”(para ello necesitaréis crear un Provisioning Profile de Distribución Ad Hoc en el Member Center de Apple), descomprimáis el archivo “.ipa” para ver el archivo compilado de la App y después mostréis el contenido del paquete (pulsando con el botón derecho del mouse sobre el archivo contenido en el “.ipa”). Así veréis todos los archivos que conforman vuestra App y podréis averiguar cuál es el problema exacto de vuestra App.
Ahora vamos con la solución, ¿qué imágenes tenemos que optimizar? En definitiva, la respuesta es simple:
- Raíz del Proyecto de XCODE: Optimizar las imágenes "LaunchScreenImage-Landscape.png" y "LaunchScreenImage-Portrait.png" con ImageAlpha, asignándole 16 colores en vez de 256 (medir según la calidad de la imagen) y guardando la imagen mediante el comando “Save as…” y marcando la opción ImageOptim.
- /<RAIZ_PROYECTO_XCODE>/Unity-Iphone/Images.xcassets/LaunchImage.launchimage: Optimizando cada imagen contenida en esa carpeta configurando 16 colores y marcando también la opción ImageOptim.
No obstante, si tuvierais alguna duda sobre el proceso, no dudéis en contactarme mediante el formulario de contacto de esta web y os contestaré lo antes posible.
Eso es todo de momento, espero que os sirva de utilidad. Saludos