Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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. E.g., 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.

E.g., 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!

like image 771
Jon-Eric Avatar asked Dec 15 '09 16:12

Jon-Eric


1 Answers

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.

like image 163
Gregory Pakosz Avatar answered Sep 21 '22 20:09

Gregory Pakosz