Связывание статической библиотеки с проектом iOS в XCode 4
У меня есть проект (AQGridView
), который компилируется в статическую библиотеку, но я не могу добавить его в свой проект.
Перетаскивание проекта в мой проект создает рабочее пространство, и если я попытаюсь связать файл libAQGridView.a
из каталога DerivedData
, он не распознает его как библиотеку. Я не уверен, что я делаю неправильно.
Это проект AQGridView
. Кто-нибудь знает, как использовать его в проекте XCode 4?
Ответы
Ответ 1
Я делаю это следующим образом:
- Перетащите проект статической библиотеки. Если в Xcode открыт проект статической библиотеки, закройте его сейчас.
- Выберите главный проект в навигаторе проекта (проект, к которому я добавляю статическую библиотеку), и в редакторе под заголовком TARGETS в левом столбце выберите мою главную цель проекта и перейдите к этапам сборки вкладка.
- Нажмите "+" для целевых зависимостей и добавьте целевую зависимость значка библиотеки из добавленного проекта статической библиотеки.
- Нажмите "+" для Link Binary с библиотеками и добавьте значок библиотеки, находящийся в папке "Рабочая область".
- Также может потребоваться ввести путь поиска заголовка для заголовков проекта статической библиотеки, если это то, как заголовки связаны в самом проекте статической библиотеки.
Если вы не видите, что проект статической библиотеки вложен в основной проект основного навигатора проекта проекта, наиболее вероятная причина этого в том, что собственный проект Xcode статической библиотеки все еще открыт. Закройте Xcode и откройте основной проект, в котором есть вложенный проект статической библиотеки, не открывая сам проект статической библиотеки, и вы должны увидеть, что он отображается как вложенный проект в вашем основном проекте.
Ответ 2
Меню Xcode > Вид > Утилиты > Файловый инспектор
Выберите файл статической библиотеки, а затем установите "Тип файла" как "Объектный код Mach-O" в "Identity and Type".
Ответ 3
Найдите ваш .a файл в finder и перетащите его в свой проект.
Выберите "копировать элементы в папку целевой группы (если необходимо)" и добавьте заголовки в свой проект.
Теперь XCode 4 должен автоматически ссылаться на эту структуру для вас.
Вот как должна выглядеть библиотека в вашем проекте:
![jgxX2.png]()
Ответ 4
Рабочие пространства должны сделать это проще, но я не знаю, что они делают. Как я это делаю, создайте рабочее пространство, добавьте мой основной проект, добавьте мой проект библиотеки. Затем перейдите к основным этапам сборки проекта и добавьте библиотеку в раздел "Связывание с библиотеками" и добавьте библиотеку. Это должно быть все, что необходимо, по крайней мере, мое чтение, но это не так. То, что я делаю, - это перейти к настройкам Xcode, а затем к панели Source Trees. Добавьте исходное дерево, которое указывает на заголовки статической библиотеки, затем вернитесь к настройкам сборки для вашего проекта, затем к ключу пути заголовка и введите ${foo} там, где "foo" - это то, что вы назвали исходным деревом.
Это то, что работает для меня, хотя я не знаю, что это лучший или простой способ сделать это.
Ответ 5
Следуйте Apple документации.
Вкратце:
- Свяжите свою цель с библиотекой.
- Добавить
-ObjC
в "Другие флаги компоновщика" (OTHER_LDFLAGS
) в настройках целевой сборки.
Кроме того, мне нужно было добавить библиотеку в схему моего основного проекта, так как библиотека не была видна в целевых зависимостях.
Ответ 6
Ответ Галле работает для меня с одним дополнением:
- Зайдите в Настройки сборки проекта статической библиотеки Личный (или Открытый) путь к папке и скопируйте его.
- Добавить скопированное значение в проект клиента Параметры сборки Путь поиска заголовка или Путь поиска заголовка пользователя в зависимости от директивы include, которую вы используете