Google Analytics libAdIdAccess.a不包含位码

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 Code的post是我唯一发现的GA和bitcode。

如果我只能禁用这个库,而不是完全禁用位代码将会很好。 那可能吗?

这个答案为默认情况下启用的位代码提供了一个解决方法,这可能最终是一个更通用的问题。

更新:

大家好消息!

Google Analytics(分析)现在支持使用其3.14版本的Bitcode。 你可以从他们的下载源获取它,但是它尚未在Cocoapods上列出。

Google AnalyticsSDK下载

更改日志

原版的:

Google需要将他们的分析SDK编译成一个位码库。 然而,从以前的经验,谷歌更新他们的图书馆到64位它花了半年多的iirc。

我的build议是,如果你不支持watchOS,我们可以等待它,到了

  1. 构build设置

  2. 启用位码

  3. 设为No

如果您正在支持watchOS,请立即使用其他分析工具。

额外信息:

有开发人员在这里的一个谷歌论坛上讨论它: https : //groups.google.com/forum/#!topic/ ga-mobile-app-analytics/ d6ML4BKBBeY

Facebook和Fabric.io(Crashlytics,T​​witterKit)已经更新为使用位码,所以从技术上说Google不应该太难以效仿。 我相信这种挫折是政治。 最有可能失去的是我们的用户。

欢迎回到2013年,正如@ david-wong所说的,谷歌花了一年的时间来支持arm64。 无论何时苹果宣布对工具链进行更改或要求,Google ios SDK团队需要多年才能更新其静态库。 为了设置你的期望,他们最近才承认,即使在2015年6月8日宣布了应用程序切片/位代码,位码支持仍然是“高优先级”问题。如果您在主要目标中使用GA,GA会阻止您从使用架构切片的极其有价值的好处。

禁用位码不是解决方法,它只是禁用位码支持。 希望pipe理GA的人看到这一点,并决定让ios成为一stream的公民。

Google刚刚更新了Google Analytics和Google跟踪代码pipe理器SDK(版本3.14),以支持位代码,因此您可以使用“启用位代码 – 是”标志更新这些库并编译您的应用程序。

下载页面

直接链接

使用pod升级您的GoogleAnalytics sdk。

  1. 打开terminal
  2. 转到您的项目目录
  3. pod init
  4. 打开您的项目目录中创build的pod文件
  5. 写下面几行

     platform :ios, '10.0' target “GoogleAnalyticsTestApp” do pod 'GoogleAnalytics' pod 'GoogleIDFASupport' end 

这将解决错误。 从以下链接中,您可以添加Google的Api:

1. http://cocoapods.org/pods/GoogleAnalytics

2. http://developers.google.com/ios/guides/cocoapods

如果您正在使用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 

这将recursion通过所有的豆荚,并closuresENABLE_BITCODE。 当然,你将无法编译的手表/苹果电视(因为他们需要它在一些版本)。