Google Maps SDK的Xcode 7链接器问题

KPa*_*001 17 xcode google-maps ios google-maps-sdk-ios xcode7-beta4

我刚刚下载了Xcode 7 beta 4并且我正在尝试构建我的Swift 2.0应用程序,但是我收到以下错误,我无法找到解决方案:

ld:警告:-weak_framework与-bitcode_bundle(Xcode设置ENABLE_BITCODE = YES)一起使用时被视为-framework.根据标题ld中的可用性标记,仍可能发生弱链接:'path/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(GMSBillingPointRecorder.o)'不包含bitcode.您必须在启用bitcode(Xcode设置ENABLE_BITCODE)的情况下重建它,从供应商处获取更新的库,或禁用此目标的bitcode.for architecture arm64 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

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

Tef*_*ffi 22

ENABLE_BITCODE标志设置为NO可以解决问题.

对于那些想知道它是否安全禁用它的人.是的.

根据Apple Doc

Bitcode(iOS,watchOS)

Bitcode是编译程序的中间表示.您上传到iTunes Connect的包含bitcode的应用将在App Store上进行编译和链接.包括bitcode将允许Apple在将来重新优化您的应用二进制文件,而无需向商店提交新版本的应用.

默认情况下,Xcode会隐藏在构建时生成的符号,因此Apple无法读取它们.只有在将应用程序上传到iTunes Connect时选择包含符号才会将符号发送给Apple.您必须包含符号才能从Apple接收崩溃报告.

注意:对于iOS应用程序,bitcode是默认设置,但是可选.如果您提供bitcode,则应用程序包中的所有应用程序和框架都需要包含bitcode.对于watchOS应用程序,需要bitcode.

Bitcode是Apple为App thinning所做的新努力的一部分.在撰写本文时,它是可选的,但可能在以后需要.我认为Apple正在给框架/ libs社区提供适应的时间.

编辑:在Xcode 7中,您将应用程序上传到iTunes连接,处于称为Bitcode的中间状态.当用户下载您的应用程序时,App Store将自动生成应用程序的优化版本(例如,如果需要,则为64位)以匹配用户正在使用的设备.

目前我们可以做的是禁用bitcode并等待Google Maps SDK的更新.

UPDATE

SDK 1.11.0 - 现在支持Bitcode

https://developers.google.com/maps/documentation/ios-sdk/releases?hl=en

资源:

Xcode构建选项的影响"启用bitcode"是/否

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

https://www.hackingwithswift.com/ios9


KPa*_*001 20

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

  • 应用商店部署是否必须使用ENABLE_BITCODE?我是BTW有同样的问题GMSBillingPointRecorder.o不包含bitcode (3认同)

nik*_*ans 5

只是要清楚禁用bitcode的位置:目标 - >构建设置 - >启用Bitcode - >否

禁用Bitcode

GIF图片由@stevechen提供