Tenemos un proyecto de Xcode que incluye gráficos Retina para una interfaz de usuario basada en NIB y una interfaz de usuario WebView. Este proyecto crea una aplicación para Mac.COMBINE_HIDPI_IMAGES y gráficos Retina para WebView
El proyecto utiliza dos fases de construcción separadas para mover estos gráficos a la aplicación final. El primero es el Recurso de paquete de copia tradicional que obtiene los gráficos 1x y 2x en el paquete de la aplicación. La segunda es una fase de compilación de Copiar archivos que copia los gráficos web en un destino de Recursos separado con una subruta de "gráficos".
(Esto evita algunos conflictos de nombre y permite que el diseñador de páginas web utilizan un "/ whatever.png gráficos" camino conocido.)
Cuando la construcción de este proyecto, se obtiene un error de análisis de la dependencia que dice:
Imagen de múltiples representaciones '[email protected]' no puede ser procesada por una fase de compilación Copiar archivos - pruebe una fase de compilación Copiar recursos o deshabilite COMBINE_HIDPI_IMAGES.
Es bastante fácil para apagar la construcción de despliegue de configuraciones, denominados "Combinar ilustraciones de alta resolución", pero esto afecta a los gráficos utilizados en la interfaz de usuario basada en la SEMILLA, así como los de la vista Web UI. Con la opción activada, button.png
y [email protected]
se combinan en un button.tiff
en la carpeta de recursos del paquete de la aplicación. Sin él, se usan los nombres originales.
Por lo que puedo decir, la aplicación se comporta normalmente, pero dado que COMBINE_HIDPI_IMAGES está configurado de manera predeterminada, sospecho que hay algunos beneficios al implementar los gráficos como un solo archivo (más rápido para cargar y almacenar en caché, quizás)
Idealmente, me gustaría desactivar solo COMBINE_HIDPI_IMAGES durante la fase de compilación Copiar archivos. No puedo encontrar una manera de hacer esto, es de esperar que alguien aquí puede ...
actualización 8/27/2012
En este caso específico, la forma más sencilla de solucionar el problema era reemplace todas las imágenes HTML con la versión 2x. Dado que las etiquetas especifican un ancho y una altura, las imágenes se reducen en un 50% en un dispositivo que no sea Retina. La calidad es buena y, dado que se cargan desde el sistema de archivos local, no se percibe un impacto en el rendimiento.
actualización 8/28/2012
Otro enfoque que tomamos fue con las convenciones de nombres. Algunas imágenes HTML se especifican utilizando CSS (con una consulta de medios que selecciona la versión Retina o no Retina). Para evitar problemas con la combinación de estas imágenes en una única imagen HiDPI, usamos whatever.png y whatever_retina.png.
Si esto no funciona y está compilando desde _xcodebuild_, puede usar el parámetro '-xcconfig' para especificar qué versión desea. – Andrew