iOS CocoaPods - 如何解决"使用' @ import'当模块被禁用时#34;错误?

时间:2015-08-31 14:55:20

标签: ios objective-c compiler-errors xcode6 cocoapods

我正在寻求如何解决"使用' @ import'当模块被禁用时#34;通过cocoapods添加Google Analytics时:

pod 'Google/Analytics', '~> 1.0.0'
link_with 'AppTarget', 'AppTargetTests'

在代码中:

#import <Google/Analytics.h>

我在pod中收到此错误:

"use of '@import' when modules are disabled"

enter image description here

我检查了所有项目并看到模块已启用,以及其他建议自动&#34;链接框架&#34;

enter image description here enter image description here

由于此错误,我无法覆盖此导入: enter image description here

如何解决&#39;使用&#39; @ import&#39;当模块被禁用时#34;在xCode6中通过cocoapods添加框架时?

3 个答案:

答案 0 :(得分:2)

只是添加对@Alex Stone的评论回答的引用,以下是关于C ++中缺少@import支持的当前官方clang specification

  

目前,导入声明没有C或C ++语法。铛   将跟踪C ++委员会中的模块提案。

答案 1 :(得分:1)

我搜索了很多内容,但我自己也解决了问题的解决方案。清理项目,重建等等并不适合我。

解决方案是将API包装到Cocoa Class中,并在导入中使用此类而不是原始类。

  1. 创建类,例如APAnalyticsTracker,其中AP应该是您的常用应用程序前缀。在这里,您有两个文件:APAnalyticsTracker.mAPAnalyticsTracker.h
  2. #import <Google/Analytics.h>中导入APAnalyticsTracker并将原始实现包装成这样(有关详细信息,请参阅Gist):https://gist.github.com/vladignatyev/c240a1a4867b17894b10
  3. 自由使用APAnalyticsTracker.h文件中的.mm
  4. 请记住启用模块,请参阅@barrast的https://stackoverflow.com/a/33125158/882187评论

答案 2 :(得分:-2)

在Xcode中,只需在Build Settings中将Enable Modules(C和Objective-C)设置为Yes:

enter image description here