Можно ли отсортировать список источников компиляции в разделе "Сборка фаз" проекта Xcode?

Я хочу сортировать файлы в разделе "Компиляция источников" моего проекта Xcode в соответствии с их именами. Возможно ли это?

Ответы

Ответ 1

Да, вы можете переупорядочить раздел Компилировать источники в Xcode, но не из графического интерфейса - это позор, учитывая, что это уже версия 6 IDE, и они все еще не получили к этой основной функции.

Как сказал A-Live, вам нужно отредактировать файл project.pbxproj в файле yourproject.xcodeproj. Используйте Finder для выбора файла yourproject.xcodeproj, а затем используйте контекстное меню в Показать содержимое пакета. После этого откройте файл project.pbxproj с помощью текстового редактора.

Найдите раздел PBXSourcesBuildPhase и скопируйте все между files = ( и ); в новый текстовый файл. Удалите ведущие вкладки/пробелы. Сохраните этот файл где-нибудь на вашем диске. Откройте терминал и сделайте следующее:

 sort -bf -t " " -k 3 PBXSourcesBuildPhase.txt > PBXSourcesBuildPhase.sorted.txt

Откройте новый файл PBXSourcesBuildPhase.sorted.txt в текстовом редакторе, скопируйте отсортированные строки в раздел PBXSourcesBuildPhase вашего project.pbxproj (перезапишите строки, которые вы ранее скопировали) и сохраните.

Теперь вы должны увидеть все файлы, отсортированные в разделе Компилировать источники в Xcode.

Я протестировал это в Xcode 6.0.1 с небольшим проектом (~ 150 исходных файлов) и не имел проблем.

Осторожно: перед тем, как попробовать, вы должны сделать резервную копию своего файла проекта (или лучше: использовать контроль версий). На всякий случай.

Ответ 2

Я считаю, что стыдно, что это невозможно.

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

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

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

Ответ 3

Об этом подробно сказано, но я решил поделиться с ним командой Emacs, которая отсортировала их для меня. Перейдите к project.pbxproj, отметьте все файлы в PBXSourcesBuildPhase и используйте команду:

M-3 M-x sort-fields

... aka сортировка отмеченной области третьим столбцом, который является именами файлов. C-x C-s и ты уже в пути.

Ответ 4

Вы можете изменить порядок записей PBXSourcesBuildPhase в разделе project.pbxproj, это сработало для меня, но, конечно, нет никакой гарантии в целом, чтобы она работала. Не забудьте сначала создать резервную копию резервных копий.