Reputation: 40834
Before I added a new dependency to my test project via CocoaPods, I have already added a C header file ('wahoo.h') and exposed it to the swift code via a bridging header file "wahoo-Bridging-Header.h". The test app could be compiled and run without any problem.
Then I added a new dependency 'STHTTPRequest' to my project. You can see the list of file here:
If I added this line:
#include <STHTTPRequest/STHTTPRequest.h>
It will fail to compile with this error message:
I have tried a few alternatives but they all failed:
#include "STHTTPRequest.h"
#import "STHTTPRequest.h"
Apparently I cannot have more than one bridging header file in a project. How can I fix this import problem?
EDIT I can get around the problem if I copy the header file from Pods
into SO1
and add #include "SO1/STHTTPRequest.h"
to the bridging header. It is not an ideal solution.
How can I automate the copying of header files? Or alternatively how can make header files in Pods
accessible to SO1
?
Upvotes: 8
Views: 5420
Reputation: 177
If your pod library in Objective c in that case you need to import class like this -
@import STHTTPRequest;
Upvotes: 0
Reputation: 3361
You need to tell Xcode where to look for the header files you’re listing in the bridging header. Find the Search Paths section, and change the project-level setting for Header Search Paths, adding a recursive entry for the Pods
directory. It should be Pods/**
now.
In the Bridging Header include with:
#include <STHTTPRequest/STHTTPRequest.h>
or because of recursive search path:
#include <STHTTPRequest.h>
Upvotes: 7
Reputation: 91
I added "Pods/Headers/Public" as a recursive entry in the build settings for my project under "Search Paths/User Header Search Paths".
I then can use is standard import format: - #import "AFNetworking/AFNetworking.h"
Upvotes: 2
Reputation: 13127
You should add the following header search path: "${PODS_ROOT}/Headers/STHTTPRequest"
Upvotes: 3