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

Ale*_*one 7 compiler-errors objective-c ios cocoapods xcode6

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

pod 'Google/Analytics', '~> 1.0.0'
link_with 'AppTarget', 'AppTargetTests'
Run Code Online (Sandbox Code Playgroud)

在代码中:

#import <Google/Analytics.h>
Run Code Online (Sandbox Code Playgroud)

我在pod中收到此错误:

"use of '@import' when modules are disabled"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我检查了所有项目,看到模块已启用,另外还有"自动链接框架"的建议

在此输入图像描述 在此输入图像描述

由于此错误,我无法覆盖此导入: 在此输入图像描述

当在xCode6中通过cocoapods添加框架时,如何解决"模块被禁用时"使用'@import'?

Vla*_*yev 2

我用谷歌搜索了很多,但我自己解决了你的问题。清理项目、重建等对我来说不起作用。

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

  1. 例如,创建类APAnalyticsTracker,其中AP应该是您的公共应用程序前缀。这里你将有两个文件:APAnalyticsTracker.mAPAnalyticsTracker.h
  2. 像这样导入并包装原始实现(有关更多信息,请参阅 Gist):#import <Google/Analytics.h>https ://gist.github.com/vladignatyev/c240a1a4867b17894b10APAnalyticsTracker
  3. APAnalyticsTracker.h自由地从文件中使用.mm
  4. 请记住启用模块,请参阅/sf/answers/2318761091/ @barrast 的评论