Reputation: 1586
Using cocoa pods 0.37.0 in a Swift project, with use_frameworks! set in the podfile, I am unable to access the header files for the GoogleAnalytics-iOS-SDK pod.
How should I access the Google Analytics pod's headers in my app?
I have tried;
import GoogleAnalytics_iOS_SDK
In a Swift file, cocoapods 0.36 style. But there's no framework created anymore so no good.
#import <GoogleAnalytics_iOS_SDK/GAI.h>
In the bridging header, but doesn't work (no module map ?)
I have read that the behaviour for pods that only include headers in their 'sourse_files' changed in cocoapods 0.37 (see this commit). This appears to be in response to the problems that use_frameworks caused with these pods in 0.36 (see this SO question).
With this change in Cocoapod behaviour, the static library is integrated correctly (it wasn't with 0.36), the symbols are compiled into the app and available at runtime. But I don't have access to the headers.
Upvotes: 18
Views: 6659
Reputation: 1691
I had a similar problem on CocoaPods 0.39.0.
$(inherited) in build setting 'OTHER_LDFLAGS' solved it.
https://stackoverflow.com/a/32004207/3129306
Upvotes: 0
Reputation: 40643
Another trick is to add long relative path(s) to the bridging header.
This avoids having to make changes to project settings which may be overridden next time you run `pod install':
#import "../../Pods/GoogleAnalytics/Headers/Public/GAI.h"
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIFields.h"
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIDictionaryBuilder.h"
It also works when running your unit tests too, which another solution I tried didn't.
Upvotes: 3
Reputation: 1586
This is a bug in Cocoapods 0.37.0. It has been logged in their tracker as issue #3499.
Workaround
$(SRCROOT)/Pods/GoogleAnalytics-iOS-SDK
to the User Header Search Paths
(set to Recursive) in the app target's Build Settings
.#import "GAI.h"
Upvotes: 28
Reputation: 1076
I don't know if this is the correct answer or not, but the way we got it to work was to manually import libGoogleAnalyticsServices.a
and not via cocoapods.
Locate libGoogleAnalyticsServices.a
and drag it into the project, then add it to Linked Frameworks and Libraries
(if it's not there already) and you're good to go. Don't forget to remove it from your Podfile
.
edit:
Don't forget to add the header files to your bridging-header
Upvotes: 2