Xcode 7 beta 3刚安装了一些“附加组件”(现在版本7.0 beta 3(7A152u)),现在我收到编译错误:
ld: '/<abbreviated>/Vendor/Analytics/GoogleAnalytics/libAdIdAccess.a(TAGActualAdIdAccess.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
此Google代码post是我为GA和bitcode找到的唯一提及。
如果我只能为这个库禁用它而不是完全禁用bitcode,那将是很好的。这可能吗?
这个answer提供了一个默认情况下启用bitcode的解决方案,这最终可能是这个更通用的问题。
答案 0 :(得分:76)
<强>更新强>
大家好消息!
Google Analytics现在支持Bitcode及其3.14版本。您可以从他们的下载源获取它,但它尚未列在Cocoapods上。
<强>原始强>
Google需要将其分析SDK编译为bitcode库。但是,从之前谷歌将其库更新为64位的经验来看,它花了半年多的时间。
我的建议是,如果你不支持watchOS,我们可以等一下,到
构建设置
启用Bitcode
设为否
如果您支持watchOS,请立即使用其他分析工具。
额外信息:
有开发者在google论坛上讨论它: https://groups.google.com/forum/#!topic/ga-mobile-app-analytics/d6ML4BKBBeY
Facebook和Fabric.io(Crashlytics,TwitterKit)已经更新为使用bitcode,因此从技术上讲,谷歌不应该太难以效仿。我认为这种类型的阻碍是政治。失去最多的是我们的用户。
答案 1 :(得分:4)
欢迎回到2013年,正如@ david-wong所说,谷歌花了一年的时间来支持arm64。每当Apple宣布对工具链进行更改或要求时,Google ios SDK团队需要数年才能更新其静态库。为了设定你的期望,他们最近承认bitcode支持是一个“高优先级”问题,即使2015年6月8日宣布app slicing / bitcode。如果你在主要目标中使用GA,GA会阻止你从使用架构切片的极其宝贵的好处。
禁用bitcode不是一种解决方法,它只是禁用bitcode支持。希望管理GA的人看到这一点,并决定让ios成为一等公民。
答案 2 :(得分:2)
Google刚刚更新了Google Analytics和Google跟踪代码管理器SDK(版本3.14)以支持Bitcode,因此您可以使用&#34;启用Bitcode更新库并编译您的应用 - 是&#34;标志。
答案 3 :(得分:2)
使用pod升级您的GoogleAnalytics sdk。
写下以下行
platform :ios, '10.0'
target “GoogleAnalyticsTestApp” do
pod 'GoogleAnalytics'
pod 'GoogleIDFASupport'
end
这将解决错误。您可以通过以下链接添加Google的Api:
答案 4 :(得分:1)
如果您使用的是cocoapods,可以在Podfile的末尾添加:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
这将递归所有窗格并关闭ENABLE_BITCODE。当然,你将无法编译手表/苹果电视(因为他们在某些版本上需要它)。