Включить фреймворк в статическую библиотеку XCode? - PullRequest
17 голосов
/ 15 декабря 2009

Короче говоря:

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

Проблема:

У нас есть общий проект Xcode, который содержит несколько статических целевых библиотек, содержащих весь наш общий код. Например, если проект хочет использовать общий сетевой код, все, что ему нужно сделать, - это ссылка в нашей сетевой библиотеке.

Проблема в том, что библиотеки, похоже, не "включают" фреймворки, от которых они зависят.

Например, наша звуковая библиотека использует AudioToolkit.framework. Даже когда библиотека Sound включает AudioToolbox.framework в список связанных библиотек, клиенты получают ошибки компоновщика при связывании со звуком, если они также не связываются напрямую с AudioToolkit.framework.

Это хлопотное сопровождение, потому что каждый раз, когда меняются зависимости фреймворка библиотеки, мы вручную меняем список связанных фреймворков во всех зависимых проектах.

Это должно работать? Есть ли лучший способ?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 декабря 2009

Короче говоря: нет, статическая библиотека - это просто набор .o файлов

Решением было бы преобразование вашего общего кода в «статические структуры», см. там для возможного решения.

0 голосов
/ 23 сентября 2013

Новый ответ на этот вопрос будет, да, это возможно: используйте cocoapods! :)

http://cocoapods.org

...