Anthony Kong
Anthony Kong

Reputation: 40834

Why additional #import in bridging header failed in swift?

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:

enter image description here

If I added this line:

#include <STHTTPRequest/STHTTPRequest.h>

It will fail to compile with this error message:

enter image description here

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

Answers (5)

ravi sendhav
ravi sendhav

Reputation: 177

If your pod library in Objective c in that case you need to import class like this -

@import STHTTPRequest;

Upvotes: 0

dreamlab
dreamlab

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

jguistwite
jguistwite

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

Anthony Kong
Anthony Kong

Reputation: 40834

This works:

#include <STHTTPRequest.h>

Upvotes: 1

Edwin Vermeer
Edwin Vermeer

Reputation: 13127

You should add the following header search path: "${PODS_ROOT}/Headers/STHTTPRequest"

Upvotes: 3

Related Questions