xCode 7 错误:在 Google 地图的框架模块中包含非模块化标头

Posted

技术标签:

【中文标题】xCode 7 错误:在 Google 地图的框架模块中包含非模块化标头【英文标题】:xCode 7 error: include of non-modular header inside framework module with Google Maps 【发布时间】:2016-01-22 10:04:31 【问题描述】:

我今天更新到 xCode 7.1 并尝试构建我的应用,但出现此错误:

我已经尝试在“Target”下的 Build Settings 并将“Allow Non-modular Includes in Framework Modules”设置为 YES,但这并没有解决这个问题。

更新:由于这会阻止我编译并阻碍我在开发方面的进展,我建议您从 Apple 下载旧版本的 xCode(https://developer.apple.com/downloads/ 确保登录)。您可以从链接下载版本 7.0.1 并至少继续开发。

这就是我所做的,我可以继续开发。

我知道这不是修复,而是希望继续开发的人的解决方法。

【问题讨论】:

我有一个梦想,有一天我们将不再为了让 Xcode 开心而浪费两天的工作。 【参考方案1】:

Google 已将其 SDK 更新到 1.10.5,只需重新安装 Pod,它应该可以正常工作。我遇到了同样的问题,现在所有问题都在重新安装 pod 后得到解决。

【讨论】:

谢谢,但他们的发行说明部分甚至没有记录 - developers.google.com/maps/documentation/ios-sdk/releases 他们可能在几个小时前更新了。我也在等待官方文档更新。 这解决了我的问题。非常感谢 这应该是公认的答案。修复了我的问题,不需要桥接头,可以作为模块使用import GoogleMaps【参考方案2】:

我最终不得不创建一个 Objective-C 桥接头文件并添加 #import <GoogleMaps/GoogleMaps.h> 而我以前不需要一个,因为我在 Swift 项目中使用 Cocoapods 并且 use_frameworks! 设置之前已经解决了这个问题.

以下是如何创建 Objective-C 桥接头文件的说明:(https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html)

【讨论】:

太棒了,它的工作=)我不明白只有一个,如果我通过 CocooPod 加载 lib 为什么我应该在桥文件中导入 else ?【参考方案3】:

https://forums.developer.apple.com/thread/23554

只需删除构建设置中的标头搜索路径即可。在新的 Xcode 版本中(我猜是 7.0 之后),您需要通过链接框架而不是直接链接头文件来查找头文件。

【讨论】:

【参考方案4】:

对我来说,此问题已通过以下方式解决:

    产品 > 清洁 (cmd k) 产品 > 清理构建文件夹 (cmd opt k) 产品 > 运行 (cmd r)

【讨论】:

经过很长时间的研究,这是唯一对我有用的东西,谢谢!【参考方案5】:

This thread 可能有用。

我尝试了一些方法,但不确定是哪一种解决了问题。 首先,我编辑了我的 Podfile 以包括:

post_install do |installer|
    installer.pods_project.build_configuration_list.build_configurations.each do |configuration|
        configuration.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
    end
end

然后,我添加了一个桥接头文件,只有一行:

#import <GoogleMaps/GoogleMaps.h>

清理并重建了项目,这就成功了。

【讨论】:

以上是关于xCode 7 错误:在 Google 地图的框架模块中包含非模块化标头的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 框架的 Xcode 存档错误

带有 iOS 9.1 错误的 Xcode 7.1:在框架模块“Parse.PFGEoPoint”中包含非模块化标头

使用 Google UMP SDK 构建 Xcode 失败并显示“找不到框架”

IOS 错误:谷歌地图无法在 iPhone 上加载地图

如何使用 swift 将 google 地方自动完成功能添加到 xcode(教程)

Xcode 7 和基于 swift 的框架