Подтвердить что ты не робот

Рабочие пространства Xcode с подпроектами и зависимостями зависимостей проектов от запуска

Я бы хотел, чтобы для Xcode 5 была хорошая документация, но я не мог найти ничего достойного описания лучших практик работы с рабочими пространствами, поэтому..

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

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

Тем не менее, без включения проектов конкретный проект зависит от Я не мог найти способ, чтобы Xcode 5 автоматически обновлял фреймворки, если одна из зависимостей изменилась.

4b9b3361

Ответ 1

Это решение предназначалось для другой проблемы, но, возможно, оно отвечает вашим потребностям.

После добавления вашего подпроекта в рабочую область:

  • Выберите цель, которая должна использовать недавно добавленный подпроект
  • В разделе "Связывание двоичных файлов с библиотеками" в разделе "Фазы сборки" нажмите + Кнопка
  • Если в библиотеке не появляется "Добавить другое..."
  • Перейдите в папку, в которой находится файл проекта (*.xcodeproj)
  • Отметьте его и нажмите "Открыть"
  • Теперь вы должны увидеть, что файл проекта отображается в разделе "Link Binaries с библиотеками "
  • В разделе "Зависимости целей" на той же вкладке нажмите кнопку "+"
  • Теперь вы должны увидеть необходимые файлы
  • Проверьте и нажмите "Добавить"
  • Опять же в разделе "Связывание двоичных файлов с библиотеками" нажмите кнопку +.
  • Теперь ваш файл .a должен появиться, и вы можете выбрать и добавить его

Теперь вы используете выбранную библиотеку для своей цели. Повторите эти шаги для каждой цели, которая нуждается в этом подпроекте. Надеюсь, это поможет! Для меня это произошло потому, что я не мог добавить к нему зависимостей раньше...

Greetz, Tomte

Ответ 2

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

Ответ 3

В XCode 5 Вам нужно пойти

  • Выберите проект на левой вкладке
  • Выберите цель в разделе TARGETS
  • Затем в фазах построения > Целевые зависимости нажмите "+"
  • Выберите добавленный проект в качестве цели, который он появится в списке Target Dependencies.

Если это сработает, при построении всех целевых зависимостей будут собраны вместе при необходимости.

Ответ 4

Вы можете создать схему, которая создает все цели.

Ответ 5

Это результат ответа Tomte. Его подход вызвал у меня ошибку анализа зависимостей. Это более прямой подход и объясняет, почему работает ответ Tomte:

  • Нажмите на суб-проект и перетащите его в проект, который должен быть нацелен на подпроект.
  • Теперь появится предупреждение о параметрах. Удостоверьтесь, что Копировать элементы, если необходимо, не выбрано. Убедитесь, что выбрана команда Создать группы. Убедитесь, что ни одна из целей проекта не выбрана. Нажмите кнопку "Готово".
  • Нажмите на проект, в который вы только что добавили ссылку на субпроект.
  • Нажмите на цель, для которой вы хотите иметь зависимость от подпроекта.
  • Нажмите кнопку Target Dependecies +.
  • Обратите внимание, что продукт подпроекта указан как опция. Выберите его.

Обратите внимание, что при использовании подхода Tomte, когда проект добавляется в Link Binary With Libraries, создается ссылка на проект. Эта ссылка на проект может быть найдена в группе Frameworks проекта.

Я не согласен с тем, является ли это хорошим подходом или нет. На мой взгляд, схематический подход не намного лучше. Мне действительно интересно, почему проект рабочей области не имеет этих отношений по умолчанию.

По крайней мере, это должно устранить магию в решении Tomte.

Ответ 6

Рассмотрим переход на CocoaPods.

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

Также ваше рабочее пространство, скорее всего, станет всего лишь двумя проектами.