Шахта:
Main application
Model
Singletons
Helper+managers
Controllers // I keep nibs with their respective class files
View
Resources
images
plists
// ... groups from other types of resources if needed
Supporting files
Unit tests
Frameworks
Для многократного использования кода на прошивку я использую статические библиотеки и добавить их как отдельные проекты в рабочей области Xcode. Даже для стороннего кода, если нет целевой статической библиотеки, я создаю один. Таким образом, я отношусь к стороннему коду так же, как к своему собственному библиотечному коду. Кроме того, мне не нужно беспокоиться о версировании стороннего кода.
Я нашел важным, чтобы Xcode отражал структуру файловой системы кода, по крайней мере, до некоторого уровня. Я принял эту практику после чтения this blog post. Я не делаю этого ниже уровней, перечисленных выше. Это помогает, например, при совместном использовании кода в github. Вместо того, чтобы загрузчики или вкладчики должны копать весь ваш источник, сбрасываемый в один каталог, он организован в функциональные ведра. Я видел некоторые проекты, в которых организация Xcode в порядке, но каждый отдельный исходный файл в файловой системе сбрасывается в один каталог.