2013-01-31 11 views
12

Ich habe vor kurzem mit der Arbeit an einer neuen App begonnen, die im Grunde eine Kopie einer vorherigen App ist, die ich gemacht habe, mit ein paar Änderungen. Um diese neue App zu erstellen, habe ich die alte App kopiert und einige Sachen entfernt, die nicht benötigt werden.Suche nach unbenutzten Dateien in Xcode

Ich frage mich, gibt es eine Möglichkeit zu sagen, welche Klassen-Dateien in Xcode verwendet werden? Oder irgendwelche Tipps, wie man unbenutzte Dateien findet?

Antwort

11

Es gibt keine Funktionalität wie diese in Xcode eingebaut, aber das Problem der nicht verwendeten Klassen/Dateien usw. ist nicht so einfach wie man denken könnte.

Benutzer haben Skripte erstellt, um nicht verwendete Dateien zu ermitteln. Ich habe die script located here verwendet, die alle Ihre Quelldateien durchsucht und versucht, die Ressourcendateien zu paaren. Das Skript versucht außerdem, nach Quelldateien zu suchen, die nicht in Ihrem Projekt enthalten sind.

Der Grund ist nicht so trivial, dass Obj-C eine sehr dynamische Sprache ist; Viele Dinge werden zur Laufzeit festgelegt. Daher kann es manchmal schwierig sein, unbenutzte Dateien statisch zu finden. Beispielsweise kann ein Bildname abhängig von der Benutzereingabe im laufenden Betrieb bestimmt werden.

Ich weiß nicht, wie groß Ihre Anwendung ist, aber Sie könnten ein Abhängigkeitsdiagramm versuchen und nach Waisenklassen suchen. Weitere Informationen finden Sie unter this blog post.

+1

Es wäre schön, wenn Xcode eine eingebaute Funktion dazu hätte. Der Link, den Sie zu diesem Skript gepostet haben, ist sehr nützlich, danke. – JDx

0

Siehe auch diese Shell-Skripten http://mfaizanshaikh.wordpress.com/2012/12/17/how-to-remove-unused-images-from-xcode-project/

Grundsätzlich ist die Shell-Skript unten, alle png Dateien in Ihrem Projekt findet, die nicht in einem der xib-Dateien verwendet werden. Wenn Sie die Datei png auf andere Art und Weise verwendet haben (Storyboards, laden Sie den Code), zeigt dieses Skript sie immer noch als unbenutzt an.
Referenz einfügen ich die Skripte auch hier:

#!/bin/sh 
PROJ=`find . -name '*.xib' -o -name '*.[mh]'` 

for png in `find . -name '*.png'` 
do 
    name=`basename $png` 
    if ! grep -q $name $PROJ; then 
     echo "$png is not referenced" 
    fi 
done 
+0

Ich entschuldige mich für meine Direktheit, aber was hat das mit der eigentlichen Frage zu tun? Hast du es gelesen? – pyRabbit

+1

Der letzte Teil der Fragen fragt nach Tipps zum Auffinden nicht verwendeter Dateien. Dies scheint sich auf das Auffinden nicht verwendeter Bilddateien zu beziehen. Es ist keine vollständige Antwort auf die Frage, sondern beginnend mit "Siehe auch das ..." Ich glaube nicht, dass er beabsichtigt hat, dass es eine vollständige Antwort ist, lediglich einige zusätzliche hilfreiche Informationen. –

4

Die AppCode IDE von Jetbrains hat einige sehr anständige Funktionen Code-Inspektion. Es kann auf ungenutzte Klassen und andere Ressourcen hinweisen und behauptet vollständig Xcode-kompatibel zu sein.

+0

Und sie arbeiten an Swift Unterstützung dafür. –

5

Sehen Sie das nützliche Werkzeug. Eine Mac-App zum Prüfen von Xcode-Projekten auf ungenutzte Ressourcen http://jeffhodnett.github.io/Unused/

+0

Diese App sagte, dass keine Bilddatei in meinem Projekt verwendet wurde und keine Klassendateien angezeigt wurden, die nicht verwendet wurden. Nicht hilfreich. – Michael

3

Dieses Tool findet nicht verwendete Importe/Klassen: fui.

Von der README Seite:

Finden ungenutzt Objective-C Importe.

+0

Gleiche Warnung .... Keine Unterstützung oder eigenes Dokument zu diesem Projekt in GitHub gefunden – jailani

0

Es gibt eine App namens Slender von Martiancraft, die gut für potenziell unbenutzte Bilder vorschlägt.

http://martiancraft.com/products/slender.html

Ich glaube, dass Faux Pas macht etwas Ähnliches für Klassendateien, aber ich werde überprüfen. Diese App sucht auch nach nicht verwendeten Methoden, Übersetzungen und Ressourcen.

http://fauxpasapp.com/rules/#rule-UnusedResource

Ich habe weder App vor kurzem verwendet, kann aber mit den beiden zuvor zu sein beeindruckt erinnern.

Verwandte Themen