首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Google Maps SDK的Xcode 7链接器问题

Google Maps SDK的Xcode 7链接器问题
EN

Stack Overflow用户
提问于 2015-07-27 05:12:16
回答 4查看 6.6K关注 0票数 17

我刚刚下载了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查看调用)

有人知道如何解决这个问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-07-27 12:53:35

我将ENABLE_BITCODE标志更改为No,并正确编译,感谢@Visput给出的答案

票数 20
EN

Stack Overflow用户

发布于 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

资源:

Impact of Xcode build options "Enable bitcode" Yes/No

https://developer.apple.com/library/prerelease/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html

https://www.hackingwithswift.com/ios9

票数 22
EN

Stack Overflow用户

发布于 2015-11-15 19:08:08

只需明确禁用位码的位置: Target -> Build Settings -> Enable Bitcode -> No

GIF图片由@stevechen提供

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31642014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档