Если у вас есть два или более продукта, которые собираются совместно использовать большое количество общего кода, например набор продуктов, вы можете рассмотреть возможность создания только одного проекта xcode, а затем добавить отдельную цель для каждого продукта, который будет построен как из общего, так и специфичного для продукта кода. С большим количеством общего кода, пара продуктов клиент / сервер, возможно, будет отличным кандидатом на этот путь.
Вкратце, основная сделка заключается в том, что для каждой цели в вашем проекте xcode, которую вы хотите построить, вы указываете, какие файлы должны использоваться для его создания: исходные файлы, art, xibs и так далее. Таким образом, например, вы можете настроить свой клиентский продукт на сборку с использованием файлов A, B, C, D, E, F, а ваш серверный продукт на сборку с использованием файлов A, F, X, Y, Z.
Мне действительно нравится, когда каждый связанный продукт находится под одной крышей проекта xcode, потому что вам не нужно прыгать по проектам xcode, и это действительно упрощает управление SCM для общих файлов.
Вот ссылка на документы Apple по этому вопросу: https://developer.apple.com/library/mac/#featuredarticles/XcodeConcepts/Concept-Targets.html
Обновление: есть немного лишних хлопот, когда дело доходит до настройки специфичных для цели заголовочных файлов в xcode (это всегда что-то ... правильно ?!); например, используйте «myHeaderA.h» для этой цели и «myHeaderB.h» для этой цели. Вот отличный пост, в котором рассказывается, как это сделать: контроль над тем, какой заголовочный файл проекта Xcode будет включать . Внимание: после того, как вы все настроите таким образом, xcode больше не будет знать пути для поиска любого из ваших целевых заголовочных файлов, поэтому вы должны настроить их вручную. Для этого щелкните правой кнопкой мыши пункт Получить информацию о своей цели, выберите категорию «Построение», затем добавьте свои пути с помощью параметра «Пути поиска по заголовку». Пути ищутся в том порядке, в котором вы их вводите.