Поиск неиспользуемых файлов в Xcode

Недавно я начал работу над новым приложением, которое в основном является копией предыдущего приложения, которое я сделал, с несколькими изменениями. Чтобы сделать это новое приложение, я скопировал старое приложение и удалил некоторые вещи, которые не нужны.

Мне интересно, есть ли способ узнать, какие файлы классов используются в Xcode? Или какие-либо советы о том, как найти неиспользуемые файлы?

Ответ 1

В Xcode нет таких функций, как встроенная в Xcode, но проблема с неиспользуемыми классами/файлами и т.д. не так проста, как можно подумать.

Люди создали скрипты, чтобы попытаться определить неиспользуемые файлы. Я использовал script, расположенный здесь, который просматривает все ваши исходные файлы и пытается связать файлы ресурсов. script также пытается проверить исходные файлы, не включенные в ваш проект.

Причина, по которой это не так тривиально, заключается в том, что Obj-C - очень динамичный язык; во время выполнения определяется множество вещей. Таким образом, иногда бывает сложно определить статические значения неиспользуемых файлов. Например, имя изображения может определяться "на лету" в зависимости от пользовательского ввода.

Я не знаю, насколько велико ваше приложение, но вы можете попробовать график зависимостей и проверить наличие сиротских классов. См. этот пост в блоге о дополнительной информации.

Ответ 2

См. полезный инструмент. Приложение Mac для проверки проектов Xcode для неиспользуемых ресурсов http://jeffhodnett.github.io/Unused/

Ответ 3

AppCode IDE от Jetbrains имеет некоторые очень достойные функции проверки кода. Он может указывать неиспользуемые классы и другие ресурсы и утверждает, что он полностью совместим с Xcode.

Ответ 4

Этот инструмент находит неиспользуемые импорты/классы: fui.

На странице README:

Найти не использованный импорт Objective-C.

Ответ 5

Также см. сценарии оболочки http://mfaizanshaikh.wordpress.com/2012/12/17/how-to-remove-unused-images-from-xcode-project/

В основном оболочка script ниже, находит все файлы png в вашем проекте, которые не используются ни в одном из файлов xib. Конечно, если вы использовали файл png другими способами (раскадровки, загрузка в коде), этот script покажет их как неиспользуемые.
Для справки я также вставляю скрипты:

#!/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

Ответ 6

Там есть приложение под названием Slender от Martiancraft, которое полезно для указания потенциально неиспользуемых изображений.

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

Я считаю, что Faux Pas делает что-то похожее для файлов классов, но я проверю. Это приложение также ищет неиспользуемые методы, переводы и ресурсы.

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

Я не использовал последнее приложение недавно, но помню, как он был впечатлен обоими ранее.