I'm seeking how to resolve "use of '@import' when modules are disabled" when adding Google Analytics through cocoapods:
pod 'Google/Analytics', '~> 1.0.0'
link_with 'AppTarget', 'AppTargetTests'
In code:
#import <Google/Analytics.h>
I get this error within a pod:
"use of '@import' when modules are disabled"
I checked all projects and see that modules are enabled, along with the other suggestiont to "Link frameworks automatically"
I cannot override this import because of this error:
How can I resolve "use of '@import' when modules are disabled" when adding frameworks through cocoapods in xCode6?
I googled a lot, but hacked the solution for your problem myself. Cleaning the project, re-building etc. wasn't working for me.
The solution is to wrap API into Cocoa Class, and use this class in your imports instead of original.
APAnalyticsTracker
, whereAP
supposed to be your common application prefix. Here you'll have two files:APAnalyticsTracker.m
andAPAnalyticsTracker.h
#import <Google/Analytics.h>
inAPAnalyticsTracker
and wrap the original implementation like this (see Gist for more information): https://gist.github.com/vladignatyev/c240a1a4867b17894b10APAnalyticsTracker.h
from.mm
files freely.In Xcode, just set Enable Modules (C and Objective-C) to Yes in Build Settings:
Just to add a reference to @Alex Stone's answer-in-a-comment, here is the current official clang specification on the lack of support for
@import
in C++: