我刚刚下载了Xcode 7 beta 4并且正在尝试构建我的Swift 2.0应用程序,但是我收到以下错误,我无法找到解决方案:
ld:警告:-weak_framework在使用时被视为-framework -bitcode_bundle(Xcode设置ENABLE_BITCODE = YES)。根据标头ld中的可用性标记,仍可能发生弱链接: '路径/荚/谷歌地图/框架/ GoogleMaps.framework /谷歌地图(GMSBillingPointRecorder.o)' 不包含bitcode。您必须在启用bitcode的情况下重建它 (Xcode设置ENABLE_BITCODE),从中获取更新的库 供应商,或禁用此目标的bitcode。对于架构arm64 clang:错误:链接器命令失败,退出代码为1(使用-v查看 调用)
有谁知道如何解决这个问题?
答案 0 :(得分:22)
将 ENABLE_BITCODE 标记设置为否解决问题。
对于那些想知道是否安全禁用它的人。 是的。
根据Apple Doc
Bitcode(iOS,watchOS)
Bitcode是编译程序的中间表示。应用 您上传到包含bitcode的iTunes Connect将被编译 在App Store上链接。包括bitcode将允许Apple 将来重新优化您的应用二进制文件,而无需提交 您的应用程序的新版本到商店。
默认情况下,Xcode会隐藏在构建时生成的符号,因此它们也是如此 Apple无法读取。仅当您选择包含符号时 将您的应用程序上传到iTunes Connect会将符号发送到 苹果。您必须包含符号才能从Apple接收崩溃报告。
注意:对于iOS应用,bitcode是默认设置,但是可选。如果你 提供bitcode,应用程序包中的所有应用程序和框架都需要 包括bitcode。对于watchOS应用程序,需要bitcode。
Bitcode是Apple为App thinning所做的新努力的一部分。在撰写本文时,它是可选的,但可能在以后需要。我认为Apple正在给框架/ libs社区提供适应的时间。
编辑: 在Xcode 7中,您将应用程序上传到iTunes连接,处于名为 Bitcode 的中间状态。当用户下载您的应用程序时,App Store将自动生成应用程序的优化版本(例如,如果需要,则为64位)以匹配用户正在使用的设备。
现在我们可以做的是禁用bitcode并等待Google Maps SDK的更新。
<强>更新强>
SDK 1.11.0 - 现在支持Bitcode
https://developers.google.com/maps/documentation/ios-sdk/releases?hl=en
资源:
答案 1 :(得分:20)
我将ENABLE_BITCODE标志更改为否并正确编译,感谢@Visput的答案
答案 2 :(得分:5)
答案 3 :(得分:0)
Google已在SDK版本1.11.0中解决此问题 - 2015年12月。请参阅release notes:
Bitcode现已包含在所有设备架构的SDK二进制文件中。 (Issue 8219)。