Ignorer l'étape de génération 'CompressResources' pour les applications iPhone Xcode

StackOverflow https://stackoverflow.com/questions/177160

  •  05-07-2019
  •  | 
  •  

Question

Est-il possible de définir un projet iPhone Xcode pour ignorer l'étape de construction "CompressResources"?

Plus précisément, je souhaite ignorer l'étape où il exécute pngcrush sur tous mes fichiers .png, dont beaucoup ne survivent pas à l'expérience sous une forme lisible par mon application.

Modifier: la version de pngcrush utilisée crée des fichiers png contenant un bloc "obligatoire, privé" non standard empêchant explicitement le décodage. J'ai modifié mon lecteur png pour gérer ces fichiers, mais j'aimerais quand même une méthode par projet pour ignorer cette étape. Un des autres effets secondaires de pngcrush est qu’il n’enregistre pas la valeur de couleur des pixels transparents. Les textures alpha-ed affichent ainsi les franges aux plus petits niveaux.

Le format iphone png est décrit ici: https://web.archive.org/web/20110519164905/http://modmyi.com/wiki/index.php/Iphone_PNG_images . En bref,

  • Ignorer le bloc CgBI
  • Ignorer les en-têtes zlib
  • Basculer l'ordre des canaux BGR vers RGB

Modifier: Il semble que cela prémultiplie également l'alpha, donc:

  • Diviser par alpha
Était-ce utile?

La solution

Vous pouvez ajouter "IPHONE_OPTIMIZE_OPTIONS = -skip-PNGs". Pour que les paramètres de votre projet soient évités, vous devrez peut-être optimiser l’icône et Default.png séparément.

Autres conseils

Le script iphoneos-optimise les fichiers PNG dans un format non standard optimisé pour l'affichage sur l'iPhone. Le script convertira tous les fichiers portant l’extension png qui se trouve dans l’ensemble de vos applications.

J'ai eu un problème similaire et je l'ai résolu en donnant à mon fichier l'extension _png (c'est-à-dire précédé d'un trait de soulignement). iphoneos-optimise l’ignore et lui laisse un fichier PNG normal. Si vous pouvez gérer cela de cette façon, il est probablement beaucoup plus sûr de perdre du temps avec les scripts de construction.

  • Ouvrir les paramètres de construction
  • Sous "Emballage". choisissez Compresser les fichiers PNG
  • Choisissez "NON"

Si vous regardez le résultat de la construction, vous verrez que l'étape CompressResources exécute le script /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/iphoneos-optimize . Cela semble être juste un script shell qui exécute pngcrush et compile les plists au format binaire. Vous pouvez probablement modifier ce script pour ne pas exécuter pngcrush.

Notez que quelqu'un dans ce fil a remarqué que s'il le faisait exécutez pas son fichier d’icône via pngcrush, il n’apparaissait pas au téléphone.

Fait intéressant, la version de pngcrush dans le répertoire du script a un argument -iphone. Quelqu'un sait-il s'il s'agit d'une norme ou de quelque chose qu'Apple vient d'envoyer avec sa version?

Cela pourrait être un autre problème tous ensemble. Dans de nombreux cas, le problème est lié au nommage et peut être résolu très facilement.

lisez ceci: http : //cocoapi.wordpress.com/2009/03/22/iphone-images-not-appearing-in-real-iphone-this-is-why/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top