Как мне управлять зависимостями между проектами в рабочем пространстве Xcode?

Я работаю над проектом приложения iOS и добавляю проект json-framework в рабочую область. Навигатор проектов слева показывает оба проекта, а селектор схемы сборки также показывает схемы из обоих проектов. Теперь я хочу добавить цель libjson.a из проекта json-framework в качестве зависимости от цели приложения iOS в другом проекте. Ожидаемый результат состоит в том, что всякий раз, когда создается цель приложения, она создает (при необходимости) цель библиотеки и связывает цель приложения с ней. Вот способы, которыми я пытался это сделать:

  • Создайте оба как часть одной схемы. Я пытаюсь отредактировать схему своего приложения, добавив libjson.a в Build. часть схемы, и, кстати, проверяется "Найти неявные зависимости". Затем я перехожу к целевому редактору для своего целевого приложения и в разделе «Фазы сборки» -> «Связать двоичный файл с библиотеками» выбираю «libjson.a» из списка библиотек рабочей области. Когда я впоследствии пытаюсь построить схему, я вижу, что она создает целевой объект библиотеки, но создание целевого приложения завершается ошибкой компоновщика «Библиотека не найдена для -ljson», что говорит о том, что на самом деле он не обнаружил, что библиотека была создана. Действительно, в навигаторе проекта запись в проекте приложения для библиотеки по-прежнему остается красной, что означает, что файл не существует.

  • Добавьте цель json как явную зависимость. Чтобы попробовать это, я не изменяю схему сборки, а перехожу в целевой редактор для своего целевого приложения и нажимаю кнопку добавления в разделе «Целевые зависимости». Цели из других проектов в рабочей области не отображаются, так что это не начало.

  • Перетащите проект JSON в другой проект, затем добавьте цель как зависимость. Это то, что я сделал бы в Xcode 3. В навигаторе проекта Я беру проект библиотеки и перетаскиваю его по проекту приложения. Это вызывает обычную панель «добавить файлы», которую я просто закрываю, нажимая «Готово». Теперь есть две записи для проекта библиотеки в навигаторе проекта: одна на верхнем уровне, а другая - в проекте приложения. Теперь я могу добавить целевую библиотеку в качестве зависимости цели приложения с помощью целевого редактора и могу связать ее без ошибок на этапе компоновки библиотек. Но это выглядит сломанным: в навигаторе есть несколько записей для одного и того же проекта. Есть ли другой способ сделать это?

Что следует считать «подходом Xcode 4» для соединения этих целей в разных проектах в одной рабочей области? Казалось бы, этого не хватает, если несколько проектов в одном рабочем пространстве не могут фактически взаимодействовать друг с другом. Спасибо, Грэм.

59
задан 30 March 2011 в 08:34
поделиться