program precio mexico developer desarrollador cuenta certificacion apple app iphone xcode image resources

iphone - precio - cuenta desarrollador ios



Saltarse el paso de compilaciĆ³n ''CompressResources'' para las aplicaciones XCode para iPhone (5)

¿Es posible establecer un proyecto de iPhone XCode para omitir el paso de compilación ''CompressResources''?

Específicamente, quiero omitir el escenario donde se ejecuta pngcrush en todos mis archivos .png, muchos de los cuales no sobreviven a la experiencia en un formato que mi aplicación puede leer.

Editar: la versión de pngcrush utilizada crea archivos png que contienen un fragmento ''obligatorio, privado'' no estándar que impide explícitamente la decodificación. Modifiqué mi lector png para manejar estos archivos, pero aún me gustaría un método por proyecto para omitir este paso. Uno de los otros efectos secundarios de pngcrush es que no guarda el valor de color de los píxeles transparentes, por lo que las texturas alfa-ed muestran franjas a niveles de mip más pequeños.

El formato iphone png se describe aquí: http://modmyi.com/wiki/index.php/Iphone_PNG_images . En breve,

  • Omita el fragmento CgBI
  • Omita los encabezados zlib
  • Cambiar orden de canal BGR a RGB

Editar: parece que también premultiplica el alfa, entonces:

  • Divide por alfa

La secuencia de comandos iphoneos-optimize convierte los archivos PNG en un formato no estándar que está optimizado para mostrarse en el iPhone. La secuencia de comandos convertirá cualquier archivo con la extensión png que encuentre dentro de su paquete de aplicaciones.

Tuve un problema similar, y lo resolví dando a mi archivo la extensión _png (es decir, con un guion bajo como prefijo). iphoneos-optimize lo ignoró y lo dejó como un archivo PNG normal. Si puede manejarlo de esa manera, es probablemente mucho más seguro que perder el tiempo con los scripts de compilación.


Si observa el resultado de compilación, verá que el paso CompressResources ejecuta el script /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/iphoneos-optimize . Esto parece ser solo un script de shell que ejecuta pngcrush y compila listas en formato binario. Probablemente puedas modificar este script para no ejecutar pngcrush.

Tenga en cuenta que alguien en este hilo se dio cuenta de que si no ejecutaban su archivo de iconos a través de pngcrush, no aparecía en el teléfono.

Curiosamente, la versión de pngcrush en el directorio de la secuencia de comandos tiene un argumento -iphone. ¿Alguien sabe si esto es estándar o algo que Apple acaba de enviar con su construcción?


Puede agregar "IPHONE_OPTIMIZE_OPTIONS = -skip-PNGs" a la configuración de su proyecto para evitar que png se arruine, pero tenga cuidado con él, puede que necesite optimizar el icono y Default.png por separado.



  • Abrir configuración de compilación
  • En "empaquetado", elija Comprimir archivos PNG
  • Elija "NO"