简体   繁体   中英

Include framework in Xcode static library?

In short:

Is there a way to create a static library in Xcode such that when clients link with that library, they also link with the frameworks upon which that library depends?

The problem:

We have a shared Xcode project which contains multiple static library targets containing all of our common code. Eg, If a project wants to use the shared networking code, all they should have to do is link in our Network library.

The problem is that the libraries don't seem to "include" the frameworks on which they depend.

Eg, our Sound library uses the AudioToolkit.framework. Even when the Sound library includes AudioToolbox.framework in the list its linked libraries, clients get linker errors when linking with Sound if they don't also directly link with AudioToolkit.framework.

This is a maintenance hassle because every time a library's framework dependencies change we have manually go change the list of linked frameworks in all dependent projects.

Is this supposed to work? Is there a better way?

Thanks!

In short: no, a static library is just a bunch of .o files

A solution would be to refactor your common code into "static frameworks", see there for a possible solution.

A new answer to this question would be, yes it's possible: use cocoapods! :)

http://cocoapods.org

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM