Связывание статической библиотеки с проектом iOS в XCode 4


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

перетаскивание проекта в мой проект создает рабочую область, и если я попытаюсь связать С DerivedData каталог он не распознает его как библиотеку. Я не уверен, что я делаю неправильно.

это . Кто-нибудь знает, как конкретно использовать его в проекте XCode 4?

6 73

6 ответов:

Я делаю это следующим образом:

  1. перетащить в проект статической библиотеки. Если у вас есть проект статической библиотеки, открытый в Xcode, закройте его сейчас.
  2. выберите основной проект в навигаторе проектов (проект, в который я добавляю статическую библиотеку) и в Редакторе под заголовком цели в левом столбце выберите цель моего основного проекта и перейдите на вкладку этапы сборки.
  3. Нажмите " + " для целевых зависимостей и добавьте целевой значок библиотеки зависимость от добавленного проекта статической библиотеки.
  4. Нажмите кнопку " + "для связи двоичного файла с библиотеками и добавьте значок библиотеки, который находится в папке"Workspace".
  5. также может потребоваться ввести путь поиска заголовков для заголовков проекта статической библиотеки, если именно так заголовки связаны в самом проекте статической библиотеки.

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

меню Xcode > вид > утилиты > инспектор файлов

Выберите файл статической библиотеки, а затем установите "тип файла" как "код объекта Mach-O" в "идентификатор и тип".

рабочие должны сделать это проще, но я не знаю, что они делают. Я делаю это так: создаю рабочее пространство, добавляю свой основной проект, добавляю свой проект библиотеки. Затем перейдите к этапам сборки основного проекта и добавьте библиотеку в разделе "Link binary with libraries" и добавьте библиотеку. Это должны быть все, что надо, по крайней мере, это мое чтение, но это не так. Что я сделать, это зайти в настройки Xcode, а затем в область исходных деревьев. Добавьте исходное дерево, которое указывает в заголовки статической библиотеки вернитесь к настройкам сборки для вашего проекта, затем к ключу пути поиска заголовка и введите ${foo} там, где "foo" - это то, что вы назвали исходным деревом.

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

найти свой .файл в finder и перетащите его в свой проект.

выберите "Копировать элементы в папку целевой группы (при необходимости)" и добавьте заголовки в свой проект.

теперь XCode 4 должен автоматически связываться с этой структурой для вас.

вот как должна выглядеть библиотека в вашем проекте:

следуйте за Apple документация.

вкратце:

  1. свяжите свою цель с библиотекой.
  2. добавить -ObjC в "другие флаги компоновщика" (OTHER_LDFLAGS) в настройках сборки цели.

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

ответ Галле работает для меня с одним дополнением:

  1. Регистрация Настройки Сборки проекта статической библиотеки путь к папке личных( или общедоступных) заголовков значение и скопируйте его.
  2. добавить скопированное значение в клиентский проект Параметры Построения Путь Поиска Заголовка или Путь Поиска Заголовка Пользователя в зависимости от включить директива, которую вы используете