iOS CocoaPods - 如何解决 "use of '@import' when modules are disabled" 错误?

iOS CocoaPods - how to resolve "use of '@import' when modules are disabled" error?

我正在寻找如何在通过 cocoapods 添加 Google 分析时解决 "use of '@import' when modules are disabled":

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

在代码中:

#import <Google/Analytics.h>

我在 pod 中遇到此错误:

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

我检查了所有项目,发现模块已启用,以及 "Link frameworks automatically"

的其他建议

由于这个错误,我无法覆盖这个导入:

在xCode6中通过cocoapods添加框架时如何解决"use of '@import' when modules are disabled"?

在 Xcode 中,只需在构建设置中将启用模块(C 和 Objective-C)设置为是:

只是在 C++ 中缺少对 @import 的支持时添加对 @Alex Stone's answer-in-a-comment, here is the current official clang specification 的引用:

At present, there is no C or C++ syntax for import declarations. Clang will track the modules proposal in the C++ committee.

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

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

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