I have a project (AQGridView
) that compiles to a static library, but I can\'t seem to add it to my project.
Dragging in the project to my project create
Follow Apple's documentation.
In brief:
-ObjC
to 'Other Linker Flags' (OTHER_LDFLAGS
) under the target's build settings.Also, I needed to add the library to the scheme of my main project since the library was not visible in the target's dependencies.
Find your .a file in finder, and drag it into your project.
Select the 'copy items into destination group's folder (if needed)', and add your headers to your project.
Now, XCode 4 should automatically link against that framework for you.
Here is what the library should look like in your project:
I do this as follows:
If you don't see the static library project as nested under the main project in the main project's project navigator, the most likely reason for that is that the static library's own Xcode project is still open. Quit Xcode and open up the main project that has the nested static library project in it without opening up the original static library project itself, and you should see it appearing as a nested project in your main project.
Workspaces are supposed to make this easier, but I don't know that they do. The way I do it is create a workspace, add my main project, add my library project. Then go into the main project's build phases and add the library in the "Link binary with libraries" section and add the library. That should be all that is necessary, at least that's my reading, but it isn't. What I do is go into Xcode preferences, then to the Source Trees pane. Add a source tree that points to your static library's headers, then go back to the build settings for your project, then to the Header Search Paths key, and enter ${foo} there, where "foo" is whatever you called the source tree.
That's what works for me, though I don't know if that's the best or easiest way to do it.
The Halle's answer works for me with one addition:
Xcode menu > View > Utilities > File Inspector
Select the static library file, and then set 'File Type' as 'Mach-O object code' in 'Identity and Type'.