Я работаю над проектом приложения iOS и добавляю проект json-framework в рабочую область. Навигатор проекта слева показывает оба проекта, а селектор схемы сборки также показывает схемы обоих проектов. Теперь я хочу добавить цель libjson.a из проекта json-framework как зависимость от цели приложения iOS в другом проекте. Ожидаемый результат заключается в том, что всякий раз, когда создается цель приложения, он строит (при необходимости) целевую библиотеку и связывает цель приложения с ней. Вот как я пытался это сделать:
-
Постройте как часть одной и той же схемы. Способ, которым я пытаюсь это сделать, - отредактировать схему для моего приложения, добавив "libjson.a" в часть "Build" схемы, и, кстати, проверяется "Найти неявные зависимости". Затем я перехожу к целевому редактору для своей целевой задачи, а в "Build Phases" → "Link Binary With Libraries", я выбираю "libjson.a" из списка библиотек рабочих пространств. Когда я потом пытаюсь построить схему, я вижу, что она создает целевую библиотеку, но создание целевой задачи приложения не выполняется с ошибкой компоновщика "Библиотека не найдена для -ljson" - предполагая, что она фактически не обнаружила, что библиотека была построена. Действительно, в навигаторе проекта запись в проекте приложения для библиотеки по-прежнему красная, что означает, что файл не существует.
-
Добавить json target как явную зависимость. Чтобы попробовать это, я не изменяю схему сборки, но перейдите в целевой редактор для своей целевой задачи и нажмите кнопку "Добавить" в разделе "Зависимости целей". Не отображаются цели из других проектов в рабочей области, поэтому это не стартер.
-
Перетащите проект JSON в другой проект, затем добавьте цель как зависимость. Это то, что я бы сделал в Xcode 3. В навигаторе проекта я захватил проект библиотеки и перетащил его поверх проекта приложения. Это вызывает обычную панель "Добавить файлы", которую я просто уволил, нажав "Готово". Теперь есть два элемента для проекта библиотеки в навигаторе проекта: один на верхнем уровне и один под проектом приложения. Теперь я могу добавить целевую библиотеку в качестве зависимости целевой цели приложения с помощью целевого редактора и не связываться с ней без ошибок на фазе библиотек ссылок. Но он выглядит сломанным: в навигаторе есть несколько записей для одного и того же проекта. Есть ли другой способ сделать это?
Что следует рассматривать как способ Xcode 4-ish для подключения этих целей в разных проектах в одном рабочем пространстве? Казалось бы, нет, если несколько проектов в одном и том же рабочем пространстве не могут фактически взаимодействовать друг с другом. Благодаря, Graham.