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 地图的框架模块中包含非模块化标头的主要内容,如果未能解决你的问题,请参考以下文章
带有 iOS 9.1 错误的 Xcode 7.1:在框架模块“Parse.PFGEoPoint”中包含非模块化标头
使用 Google UMP SDK 构建 Xcode 失败并显示“找不到框架”