Include Headers from added frameworks on Xcode
Solution 1
Before starting, remove the framework and all files you have added while trying to make it work.
Then, you have to add the frameworks in the Build Phases
of your target. Then go into Link Binary With Libraries
and select your framework from there.
This should do it. Your headers should be available as auto-completion after each #import directive.
If it does not work (it sometimes happens), there are additional steps I can provide to you.
Additional steps:
Go to your project settings, in the build settings:
- Complete the
Framework Search Paths
with the path of your framework - Do the same with
User Header Search Path
Then, it should work. If it does not, you will need to add the full path of your header in the #import
directive. Example:
#import "/path/to/my/header.h"
Apple's documentation available here states:
- In the project navigator, select your project
- Select your target
- Select the 'Build Phases' tab
- Open 'Link Binaries With Libraries' expander
- Click the '+' button
- Select your framework
- (optional) Drag and drop the added framework to the 'Frameworks' group
Solution 2
In my case I have added Framework Search Paths
for Target, but it should be added to Project
Also Always Search Users Path
should be yes
Solution 3
For those whose autocomplete fails after adding framework.
I used to add frameworks, by going to Build Phases
and taking the Link Binary with Libraries
option. Now in XCode 6.1, though project was building fine, autocomplete in XCode was not working.
So what needs to be done is:
- Remove the already added framework from
Project Navigator
and also fromLink Binary with Libraries
. - Add framework to project by simply
File
->Add Files to
option in XCode.
And auto complete will start working.
Solution 4
In my case, the external framework had been downloaded with Windows and added to the project. Then it was transferred to OSX, where the Xcode project was built and the external framework didn't load properly. I guess it is because Windows changes the framework folder to be a regular folder, which OSX then has trouble with.
Solution for me was to simply download the framework with OSX and drag it into the framework folder in the XCode project.
Solution 5
In my case I had to update a framework version, so I just replaced the .framework in the filesystem and then I got the error you've mentioned in the question.
Removing the framework and adding it back again, playing with the search paths and all the other suggestions didn't help.
Eventually, cleaning the build folder did the trick:
Select "Product" from the xcode menu, hold the option key and click on: "Clean Build Folder".
After that I built and ran the project successfully.
Itzik984
Updated on August 03, 2020Comments
-
Itzik984 over 3 years
I want to work with some frameworks like
glew
andcg
so i manually addedthe needed frameworks to my project by right clicking the project -> Add files to ...
and choosing the correct framework. The problem is, when i try to include the header files,
Xcode cant find any of them. I hope this picture will help to understand:
And:
The error given is for the
glew
framework, but it also happens onCg
.As you can see on the left, The needed frameworks were added.
Any idea on how i can include these headers?
After trying to add the header files manually i got an architecture error:
I dont know if this is how it should look like. Thanks!