LibAdIdAccess.a do Google Analytics não contém código de bits

83

O Xcode 7 beta 3 acabou de instalar alguns "componentes adicionais" (agora versão 7.0 beta 3 (7A152u)) e agora estou recebendo um erro do compilador:

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)

Esta postagem do Google Code é a única menção que encontrei para GA e bitcode.

Seria bom se eu pudesse desabilitá-lo apenas para esta biblioteca, em vez de desabilitar totalmente o código de bits. Isso é possível?

Essa resposta fornece uma solução alternativa para o bitcode ser habilitado por padrão, e isso pode, no final das contas, ser uma ilusão daquela questão mais genérica.

bdalziel
fonte
3
Suspeito que o Google atualizará sua fonte pública e Cocoapods quando o Xcode 7 for finalizado.
Michael Dautermann
2
Isso é justo - enquanto isso, estou desativando o bitcode por padrão, conforme indiquei na minha pergunta
bdalziel
3
Com o Xcode 7.0 GM seed, ele ainda falha, mas eu não vi uma atualização do GA ainda.
DiscDev
Por experiência própria, o GA pode levar algumas semanas ...
Vinzius
1
@MichaelDautermann XCode7 e iOS9 estão aqui e não há nada de novo no Google
Kubba,

Respostas:

76

Atualizar:

Boas notícias, pessoal!

O Google Analytics agora suporta Bitcode com sua versão 3.14. Você pode obtê-lo de suas fontes de download, no entanto, ainda não está listado no Cocoapods.

Download do SDK do Google Analytics

Log de alterações

Original:

O Google precisa compilar seu SDK analítico em uma biblioteca de código de bits. No entanto, com base na experiência anterior com o Google, atualizando suas bibliotecas para 64 bits, demorou mais de meio ano.

Meu conselho é que se você não está apoiando watchOS, podemos apenas esperar, temos que

  1. Configurações de compilação

  2. Habilitar código de bits

  3. Definido como Não

Se você oferece suporte ao watchOS, use uma ferramenta de análise diferente por enquanto.

Informação extra:

Há desenvolvedores falando sobre isso em um fórum do Google aqui: https://groups.google.com/forum/#!topic/ga-mobile-app-analytics/d6ML4BKBBeY

Facebook e Fabric.io (Crashlytics, TwitterKit) já foram atualizados para usar bitcode, portanto, tecnicamente, não deve ser muito difícil para o Google seguir o exemplo. Acredito que esse tipo de obstáculo seja a política. Quem mais tem a perder são os nossos usuários.

David Wong
fonte
5
Por que eles fazem isso, não é compatível com iOS ou atualize suas ferramentas para uma nova versão. Já temos beta há muito tempo e ele será lançado em uma semana ou mais
MKoosej
Sim, frustrante, não é? Eu fiz as mesmas perguntas quando houve a transição de 64 bits.
David Wong,
Obrigado pela informação extra em particular @DavidWong, e reafirmando a resposta comum: stackoverflow.com/a/30856364/822164
bdalziel
2
Usando uma série de SDKs de terceiros para iOS. O Google é o único que ainda não atualizou o deles. Estou descartando o SDK do Google e provavelmente não vou adicioná-lo novamente. Muito aborrecimento.
Ville Laurikari
3
Deve-se observar que se você estiver usando um pod de nível superior, como Google/Analytics, o bitcode não funcionará, mesmo com o 3.14. Você precisa usar o GoogleAnalyticspod.
Cristik
4

Bem-vindo de volta a 2013, como @ david-wong mencionou, levou um ano para o Google oferecer suporte ao arm64. Sempre que a Apple anuncia uma mudança ou requisito para o conjunto de ferramentas, a equipe do SDK do Google para ios leva anos para atualizar sua biblioteca estática. Apenas para definir suas expectativas, eles recentemente reconheceram que o suporte de bitcode é um problema de "alta prioridade", embora o fatiamento de aplicativo / bitcode tenha sido anunciado em 8 de junho de 2015. Se você estiver usando GA em seu alvo principal, o GA o impedirá de usar o benefício extremamente valioso da divisão de arquitetura.

Desativar o bitcode não é uma solução alternativa, é apenas desativar o suporte ao bitcode. Espero que alguém que gerencia o GA veja isso e decida fazer da ios um cidadão de primeira classe.

Ryan Romanchuk
fonte
2

O Google acabou de atualizar os SDKs do Google Analytics e do Google Tag Manager (versão 3.14) para oferecer suporte ao Bitcode, para que você possa atualizar as bibliotecas e compilar seu aplicativo usando a sinalização "Ativar Bitcode - Sim".

Página de download

Link direto

Igor Akimov
fonte
1
Deve-se observar que se você estiver usando um pod de nível superior, como Google/Analytics, o bitcode não funcionará, mesmo com o 3.14. Você precisa usar o GoogleAnalyticspod.
Cristik
2

Atualize seu SDK do GoogleAnalytics usando pod.

  1. Terminal aberto
  2. Vá para o diretório do seu projeto
  3. pod init
  4. Abra o arquivo pod criado no diretório do seu projeto
  5. Escreva as seguintes linhas

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

Isso resolverá o erro. Nos links a seguir, você pode adicionar a API do Google:

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

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

Rubaiyat Jahan Mumu
fonte
[ cocoapods.org/pods/GoogleAnalytics] [ developers.google.com/ios/guides/cocoapods] A partir deste link, você pode adicionar qualquer API do Google para iOS
Rubaiyat Jahan Mumu
1

Se você estiver usando cocoapods, poderá adicioná-lo ao final do 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

Isso irá percorrer novamente todos os pods e marcar o ENABLE_BITCODE como desativado. Naturalmente, você não será capaz de compilar para o relógio / apple tv (já que é necessário em algumas versões).

meio que
fonte