Quelqu'un a-t-il une ligne pour trouver des images inutilisées dans un projet Xcode? (En supposant que tous les fichiers sont référencés par nom dans le code ou les fichiers de projet - aucun nom de fichier généré par le code.)
Ces fichiers ont tendance à s'accumuler au cours de la vie d'un projet et il peut être difficile de dire s'il est sûr de supprimer un png donné.
Réponses:
Pour les fichiers qui ne sont pas inclus dans le projet, mais qui restent simplement dans le dossier, vous pouvez appuyer sur
cmd ⌘+ alt ⌥+A
et ils ne seront pas grisés.
Pour les fichiers qui ne sont référencés ni dans xib ni dans le code, quelque chose comme ça pourrait fonctionner:
la source
C'est une solution plus robuste - elle vérifie toute référence au nom de base dans n'importe quel fichier texte. Notez les solutions ci-dessus qui n'incluaient pas les fichiers de storyboard (tout à fait compréhensible, ils n'existaient pas à l'époque).
Ack rend cela assez rapide, mais il y a des optimisations évidentes à faire si ce script s'exécute fréquemment. Ce code vérifie chaque nom de base deux fois si vous avez à la fois des actifs rétine / non-rétine, par exemple.
la source
brew install ack
.chmod a+x FindUnusedImages.sh
), puis l'exécuter comme n'importe quel autre programme de bash./FindUnusedImages.sh
result=`ack --ignore-file=match:/.\.pbxproj/ -i "$file"`
Cela nécessite ack 2.0 et plusVeuillez essayer LSUnusedResources .
Il est fortement influencée par de jeffhodnett non utilisée , mais honnêtement inutilisé est très lent, et les résultats ne sont pas tout à fait correct. J'ai donc optimisé les performances, la vitesse de recherche est plus rapide que Inutilisé.
la source
J'ai essayé la solution de Roman et j'ai ajouté quelques modifications pour gérer les images de la rétine. Cela fonctionne bien, mais rappelez-vous que les noms d'images peuvent être générés par programme dans le code, et ce script listerait à tort ces images comme non référencées. Par exemple, vous pourriez avoir
NSString *imageName = [NSString stringWithFormat:@"image_%d.png", 1];
Ce script pensera à tort qu'il
image_1.png
n'est pas référencé.Voici le script modifié:
la source
Peut-être que vous pouvez essayer mince , fait un travail décent.
mise à jour: Avec l'idée d'emcmanus, je suis allé de l'avant et j'ai créé un petit utilitaire sans ack juste pour éviter une configuration supplémentaire dans une machine.
https://github.com/arun80/xcodeutils
la source
Seul ce script fonctionne pour moi et gère même l'espace dans les noms de fichiers:
Éditer
Mis à jour pour prendre en charge les
swift
fichiers etcocoapod
. Par défaut, il exclut le répertoire Pods et ne vérifie que les fichiers du projet. Pour vérifier également le dossier Pods, exécutez avec--pod
attrbiute:/.finunusedimages.sh --pod
Voici le script actuel:
la source
J'ai apporté une très légère modification à l'excellente réponse fournie par @EdMcManus pour gérer des projets utilisant des catalogues d'actifs.
Je n'écris pas vraiment de scripts bash, donc s'il y a des améliorations à apporter ici (probablement) faites-le moi savoir dans les commentaires et je le mettrai à jour.
la source
Vous pouvez créer un script shell que
grep
votre code source et comparer les images fondées avec votre dossier de projet.Ici le (s) homme (s) pour
GREP
etLS
Vous pouvez facilement mettre en boucle tout votre fichier source, enregistrer des images dans un tableau ou quelque chose d'équivalent et utiliser
cat file.m | grep [-V] myImage.png
Avec cette astuce, vous pouvez rechercher toutes les images dans le code source de votre projet !!
J'espère que cela t'aides!
la source
J'ai écrit un script lua, je ne suis pas sûr de pouvoir le partager car je l'ai fait au travail, mais cela fonctionne bien. En gros, il fait ceci:
Première étape - références d'images statiques (le plus facile, couvert par les autres réponses)
Deuxième étape - Références d'images dynamiques (le plus amusant)
Supprime ensuite tout ce qu'il n'a trouvé dans aucune des deux recherches.
Le cas limite est que les noms d'image provenant d'un serveur ne sont pas gérés. Pour gérer cela, nous incluons le code du serveur dans cette recherche.
la source
Vous pouvez essayer l' application FauxPas pour Xcode . Il est vraiment bon pour trouver les images manquantes et beaucoup d'autres problèmes / violations liés au projet Xcode.
la source
En utilisant les autres réponses, celle-ci est un bon exemple de la façon d'ignorer les images sur deux répertoires et de ne pas rechercher les occurrences des images sur les fichiers pbxproj ou xcassets (soyez prudent avec l'icône de l'application et les écrans de démarrage). Modifiez le * dans le --ignore-dir = *. Xcassets pour correspondre à votre répertoire:
la source
J'ai utilisé ce cadre: -
http://jeffhodnett.github.io/Unused/
Fonctionne très bien! Seuls 2 endroits où j'ai vu des problèmes sont lorsque les noms d'image proviennent du serveur et lorsque le nom de l'actif d'image est différent du nom de l'image dans le dossier d'actif ...
la source
Utilisez http://jeffhodnett.github.io/Unused/ pour trouver les images inutilisées.
la source
J'ai créé un script python pour identifier les images inutilisées: 'unused_assets.py' @ gist . Il peut être utilisé comme ceci:
Voici quelques règles pour utiliser le script:
Limitations de la première version:
Je vais essayer de l'améliorer au fil du temps, en fonction des retours, mais la première version devrait être bonne pour la plupart.
Veuillez trouver ci-dessous le code. Le code doit être explicite car j'ai ajouté des commentaires appropriés à chaque étape importante .
la source