Xcode 4: Как добавить статическую библиотечную целевую зависимость в проект - PullRequest
17 голосов
/ 13 мая 2011

Я знаю, об этом спрашивали несколько раз, но в основном для Xcode 3.x.Для iPad у меня есть два проекта, оба из которых живут в общем рабочем пространстве

  • Foo, приложение на основе представления и
  • Foolib, статическая библиотека Cocoa-Touch

первый в зависимости от последнего.Кажется, я не могу понять, как добавить эту зависимость.Это не очень хорошо объяснено в документации, поэтому я попробовал следующее:

  1. Нажмите на проект Foo в области навигации слева,
  2. Выберите этапы сборки вверх и развернитесекция Target Dependencies
  3. Нажмите кнопку плюса, но итоговый список будет пустым.

Я также попытался перетащить файл .a в этот раздел, но без особого успеха,Кроме того, в документации указано:

Если продукт сборки одного проекта в рабочей области зависит от продукта сборки другого проекта в рабочей области (например, если один проект создает библиотеку, используемую другимпроект), XCode обнаруживает такие неявные зависимости и создает в правильной последовательности.

Интересно, как XCode обнаруживает эти зависимости.Apple говорит, что мне вообще не нужно добавлять эту целевую зависимость?Но тогда как Xcode обнаружит, что один использует другой?

И последнее, но не менее важное: мне нужно как-то передать файлы .h из Foolib в Foo.Каков рекомендуемый способ сделать это?Очевидно, я не хочу просто копировать их.С фреймворками включены заголовочные файлы, но что обычно делают люди при работе со статическими библиотеками, которые они сами разрабатывают параллельно.Спасибо.

1 Ответ

13 голосов
/ 13 мая 2011

В целом Xcode 4, кажется, обнаруживает зависимости автоматически, как предполагает лист редактирования схемы.Другие разработчики упоминали, что зависимости не обнаруживаются автоматически, и требуют явного перечисления их:

Итак, Edit Scheme -> Build -> добавление целей из вашего рабочего пространства.

Что касается статической библиотекифайлы заголовков идут, Xcode 4, кажется, имеет проблему, по крайней мере, с дополнением кода и подсветкой синтаксиса.Единственный способ заставить меня правильно работать с классами в статических библиотеках - перетащить копию рассматриваемых файлов заголовков в папку в папке группы в основном проекте.Обратите внимание, что вы должны снять флажок Добавить в цель ... Это заботится о подсветке синтаксиса и завершении кода.Остальное нужно обработать, указав правильный путь поиска заголовка.Это будет путь поиска по заголовку пользователя = $ (BUILT_PRODUCTS_DIR) - в зависимости от того, как вы настроили свои настройки местоположений.

См .: эта ссылка

...