Google Analytics(分析)libAdIdAccess.a不包含bitcode

时间:2015-07-13 23:38:22

标签: google-analytics xcode7 bitcode

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的解决方案,这最终可能是这个更通用的问题。

5 个答案:

答案 0 :(得分:76)

<强>更新

大家好消息!

Google Analytics现在支持Bitcode及其3.14版本。您可以从他们的下载源获取它,但它尚未列在Cocoapods上。

Google Analytics SDK Download

Change Log

<强>原始

Google需要将其分析SDK编译为bitcode库。但是,从之前谷歌将其库更新为64位的经验来看,它花了半年多的时间。

我的建议是,如果你不支持watchOS,我们可以等一下,到

  1. 构建设置

  2. 启用Bitcode

  3. 设为否

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

    额外信息:

    有开发者在google论坛上讨论它: https://groups.google.com/forum/#!topic/ga-mobile-app-analytics/d6ML4BKBBeY

    Facebook和Fabric.io(Crashlytics,T​​witterKit)已经更新为使用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;标志。

Download page

Direct link

答案 3 :(得分:2)

使用pod升级您的GoogleAnalytics sdk。

  1. 打开终端
  2. 转到您的项目目录
  3. pod init
  4. 打开在项目目录中创建的pod文件
  5. 写下以下行

    platform :ios, '10.0'
    
    target “GoogleAnalyticsTestApp” do
       pod 'GoogleAnalytics'
       pod 'GoogleIDFASupport'
    end
    
  6. 这将解决错误。您可以通过以下链接添加Google的Api:

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

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

答案 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。当然,你将无法编译手表/苹果电视(因为他们在某些版本上需要它)。