Google Analytics libAdIdAccess.a不包含位码


83

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帖子是我发现的关于GA和位码的唯一提及。

如果我只能对此库禁用它,而不是完全禁用位码,那将是很好的。那可能吗?

答案提供了一种解决方案,可用于默认情况下启用的位码,这最终可能是该更通用问题的重复。


3
我怀疑Google会在Xcode 7最终发布时更新其公共资源和Cocoapods。
Michael Dautermann 2015年

2
没错-同时,如我在问题中所指出的,我默认情况下会禁用位码
bdalziel

3
使用Xcode 7.0 GM种子,它仍然会失败,但是我还没有看到GA更新。
DiscDev

根据经验,GA可能要花几周的时间
Vinzius 2015年

1
@MichaelDautermann XCode7和iOS9在这里,有来自谷歌新的什么
库巴

Answers:


76

更新:

大家好消息!

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

Google Analytics SDK下载

变更记录

原版的:

Google需要将其分析SDK编译为位码库。但是,根据Google在将其库更新为64位方面的经验,花了半年多的iirc。

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

  1. 构建设置

  2. 启用位码

  3. 设置为否

如果您支持watchOS,请暂时使用其他分析工具。

额外信息:

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

Facebook和Fabric.io(Crashlytics,T​​witterKit)已经更新为使用位码,因此从技术上来说,对于Google来说,跟上它应该不会太困难。我认为这种阻碍是政治。损失最大的是我们的用户。


5
为什么这样做,要么不支持iOS,要么将您的工具升级为新版本。我们已经有很长时间的beta版本了,它将在一周左右的时间内发布
MKoosej 2015年

是的,令人沮丧吗?当进行64位转换时,我又问了同样的问题。
David Wong

感谢您提供额外的信息,尤其是@DavidWong,并重申常见的回答:stackoverflow.com/a/30856364/822164
bdalziel15

2
使用许多适用于iOS的第三方SDK。Google是唯一一个尚未更新自己的Google的人。我要删除Google SDK,并且可能不会重新添加它。太麻烦了。
Ville Laurikari 2015年

3
请注意,如果您使用的是顶层Pod,例如Google/Analytics,则即使使用3.14,位代码也将无法使用。您需要改为使用广告GoogleAnalytics连播。
Cristik '16

4

欢迎回到2013年,正如@ david-wong所说,Google支持arm64花费了一年的时间。只要Apple宣布对工具链进行更改或要求,Google ios SDK团队就需要花费数年的时间来更新其静态库。只是为了设定您的期望,他们最近才承认,即使在2015年6月8日宣布了应用程序切片/位代码,位代码支持也是一个“高优先级”问题。如果您在主要目标中使用GA,GA将阻止您从利用架构切片的极其宝贵的好处。

禁用位码不是解决方法,而只是禁用位码支持。希望管理GA的人看到了这一点,并决定使ios成为一等公民。


2

Google刚刚更新了Google Analytics(分析)和Google Tag Manager SDK(版本3.14)以支持Bitcode,因此您可以使用“ Enable Bitcode-Yes”标志来更新库并编译应用。

下载页面

直接链接


1
请注意,如果您使用的是顶层Pod,例如Google/Analytics,则即使使用3.14,位代码也将无法使用。您需要改为使用广告GoogleAnalytics连播。
Cristik

2

使用pod升级您的GoogleAnalytics sdk。

  1. 打开终端
  2. 转到您的项目目录
  3. 荚初始化
  4. 打开在项目目录中创建的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.org/pods/GoogleAnalytics] [ developers.google.com/ios/guides/cocoapods]从此链接,您可以添加任何适用于iOS的Google API
Rubaiyat Jahan Mumu

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

这将遍历所有Pod,并将ENABLE_BITCODE标记为关闭。自然,您将无法为Watch / Apple TV编译(因为某些版本需要它们)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.