我刚刚下载了Xcode7beta4,并试图构建我的Swift 2.0应用程序,但我收到了以下错误,我无法找到解决方案:
ld:警告:当-weak_framework与-bitcode_bundle (Xcode设置ENABLE_BITCODE=YES)一起使用时,会被视为-framework。基于报头中的可用性标记,弱链接仍然可能发生:'path/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(GMSBillingPointRecorder.o)‘不包含位码。您必须在启用位码的情况下重建它(Xcode设置ENABLE_BITCODE),从供应商处获取更新库,或禁用此目标的位码。对于架构链接器clang: error: linker命令失败,退出代码为%1(使用-v查看调用)
有人知道如何解决这个问题吗?
发布于 2015-07-27 12:53:35
我将ENABLE_BITCODE标志更改为No,并正确编译,感谢@Visput给出的答案
发布于 2015-09-18 13:01:10
将ENABLE_BITCODE标志设置为NO可解决此问题。
对于那些想知道禁用它是否安全的人。是的。
根据Apple Doc
位码(iOS,watchOS)
Bitcode是编译程序的中间表示形式。您上载到iTunes连接的包含位代码的应用将在应用商店上编译和链接。包含bitcode将允许Apple在未来重新优化您的应用程序二进制文件,而无需向应用商店提交新版本的应用程序。
默认情况下,Xcode会隐藏在构建时生成的符号,因此Apple无法读取这些符号。只有当你选择在上传你的应用程序到iTunes连接时包含符号时,符号才会被发送到苹果。您必须包含符号才能接收来自Apple的崩溃报告。
注意:对于iOS应用程序,位代码是默认的,但可选。如果您提供bitcode,应用程序包中的所有应用程序和框架都需要包含bitcode。对于watchOS应用程序,位代码是必需的。
Bitcode是苹果应用程序精简的新努力的一部分。在撰写本文时,它是可选的,但可能会在以后需要。我认为苹果给了框架/库社区适应的时间。
编辑:在Xcode7中,你可以将你的应用程序以一种称为iTunes位代码的中间状态上传到 connect。当用户下载您的应用程序时,app Store将自动生成您的应用程序的优化版本(即,如果需要,则为64位),以匹配用户正在使用的设备。
现在我们能做的就是禁用bitcode并等待Google Maps SDK的更新。
更新
SDK 1.11.0 -现在支持Bitcode
https://developers.google.com/maps/documentation/ios-sdk/releases?hl=en
资源:
发布于 2015-11-15 19:08:08
只需明确禁用位码的位置: Target -> Build Settings -> Enable Bitcode -> No
GIF图片由@stevechen提供
https://stackoverflow.com/questions/31642014
复制相似问题