2012-03-17 5 views
0

Я работаю с AR Drone для разработки нового приложения.Добавить зависимости проекта в Xcode

Я хочу установить зависимость между двумя проектами. Поэтому, когда я компилирую один, я надеюсь, что Xcode поможет автоматически скомпилировать другой. Я искал в Google для этого вопроса. Найденные решения довольно старые и не применимы для Xcode 4.

Прямо сейчас у меня есть два проекта: ARDroneEngine.xcodeproj и FreeFlight.xcodeproj.

ARDroneEngine - это библиотека для FreeFlight. Вот скриншот.

enter image description here

Если я компилирую Freeflight с iPhone/IPad симулятор, это прекрасно, так как ARDroneEngine последняя скомпилирован с теми же установками. Здесь и лежит вопрос. Чтобы протестировать мое приложение, я хочу скомпилировать и запустить FreeFlight на своем iPhone. Поэтому, когда я меняю настройку на «FreeFlight> xxx's iPhone» и компилирую, возникает ошибка: «Ошибка Apple Mach-O Linker».

Я думаю, что проблема связана с целевыми зависимостями между двумя проектами. Быстрое обходное решение: скомпилируйте ARDroneEngine с новой схемой «ARDroneEngine> xxx's iPhone» и запустите FreeFlight в Xcode для моего iPhone.

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

Спасибо, Стивена

+0

Итак, что я надеюсь достичь: если я скомпилирую FreeFlight с новой схемой (например, мой iPhone), он перекомпилирует ARDroneEngine с новой схемой и обновит файл libARDroneEngine.a – LKS

ответ

1

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

  1. Создать новое рабочее пространство (Файл> Создать> Рабочее пространство); назовите его и сохраните его в любом месте (хотя размещение его в родительской папке для обоих каталогов проектов может быть хорошей идеей).
  2. Добавьте оба проекта (перетащите файлы xcodeproj из Finder в панель навигатора или используйте «Файл»> «Добавить файлы»).
  3. Разверните группу «Продукты» вашего проекта библиотеки, чтобы вы могли увидеть встроенную библиотеку (placeholder for) (libARDroneEngine.a).
  4. Выберите проект приложения (FreeFlight) в навигаторе и его целевую программу в редакторе - вы должны посмотреть на панель «Сводка» для цели (с идентификатором пакета, информацией о развертывании, правами и, самое главное, «Связанные структуры & Список библиотек».
  5. Перетащите библиотеку (libARDroneEngine.a) из навигатора (где вы сделали это видимым на шаге 3) в Linked Frameworks & Список библиотек.

Вот и все! Теперь вы можете выбрать схему FreeFlight> xxx, и она будет автоматически создавать проект библиотеки перед созданием приложения.

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

+0

Я думаю, что ваше решение может работать но прямо сейчас, libARDroneEngine.a имеет красный цвет, поэтому я думаю, что файл не удачно расположен? Вы хоть представляете, как я могу добавить его обратно? Благодаря! – LKS

+0

В моих проектах, которые делают это, библиотека отображается красным цветом в списке Linked Frameworks & Libraries, но она по-прежнему создается и связана. Наверное, долейте это до странности Xcode. (Или, может быть, их документы имеют лучший способ?) – rickster

+0

Он выглядит красным в списке «Связанные рамки и библиотеки» FreeFlight. Затем я попробую, изменив Схему. Это не удается, так как эти два проекта все еще не связаны :( – LKS

Смежные вопросы