web-dev-qa-db-fra.com

Google Analytics libAdIdAccess.a ne contient pas de bitcode

Xcode 7 beta 3 vient d'installer quelques "composants supplémentaires" (maintenant la version 7.0 beta 3 (7A152u)), et maintenant je reçois une erreur de compilation:

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)

Ce code Google post est la seule mention que j'ai trouvée pour GA et bitcode.

Ce serait bien si je pouvais le désactiver uniquement pour cette bibliothèque plutôt que de désactiver complètement le bitcode. Est-ce possible?

Cette réponse fournit une solution de contournement pour l'activation par défaut du bitcode, et cela peut finalement être une dupe de cette question plus générique.

83
bdalziel

Mise à jour:

Bonnes nouvelles tout le monde!

Google Analytics prend désormais en charge Bitcode avec sa version 3.14. Vous pouvez le récupérer à partir de leurs sources de téléchargement, mais il n'est pas encore répertorié sur Cocoapods.

Téléchargement du SDK Google Analytics

Journal des modifications

Original:

Google doit compiler son SDK d'analyse dans une bibliothèque de codes bit. Cependant, de l'expérience précédente avec Google mettant à jour leurs bibliothèques à 64 bits, il a fallu plus d'un semestre iirc.

Mon conseil est que si vous ne soutenez pas watchOS, nous pouvons simplement attendre,

  1. Paramètres de construction

  2. Activer le Bitcode

  3. Défini sur Non

Si vous prenez en charge watchOS, utilisez un outil d'analyse différent pour l'instant.

Informations supplémentaires:

Il y a des développeurs qui en parlent sur un forum Google ici: https://groups.google.com/forum/#!topic/ga-mobile-app-analytics/d6ML4BKBBeY

Facebook et Fabric.io (Crashlytics, TwitterKit) ont déjà été mis à jour pour utiliser le bitcode, il ne devrait donc pas être trop difficile pour Google de suivre. Je pense que ce type de retenue est de la politique. Ceux qui ont le plus à perdre sont nos utilisateurs.

76
David Wong

Bienvenue à 2013, comme l'a mentionné @ david-wong, il a fallu un an à Google pour prendre en charge arm64. Chaque fois que Apple annonce un changement ou une exigence à la chaîne d'outils, il faut des années à l'équipe du SDK Google ios pour mettre à jour leur bibliothèque statique. Juste pour définir vos attentes, ils reconnaissent récemment que la prise en charge du code bit est un " problème de priorité élevée ", même si le découpage d'application/bitcode a été annoncé le 8 juin 2015. Si vous utilisez GA dans votre cible principale, GA will vous empêcher d'utiliser l'avantage extrêmement précieux du découpage d'architecture.

La désactivation du bitcode n'est pas une solution de contournement, c'est simplement la désactivation de la prise en charge du bitcode. J'espère que quelqu'un qui gère GA voit cela, et décide de faire d'ios un citoyen de première classe.

4
Ryan Romanchuk

Mettez à niveau votre SDK GoogleAnalytics à l'aide de pod.

  1. Terminal ouvert
  2. Accédez à votre répertoire de projets
  3. pod init
  4. Ouvrez le fichier pod créé dans le répertoire de votre projet
  5. Écrivez les lignes suivantes

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

Cela résoudra l'erreur. À partir des liens suivants, vous pouvez ajouter l'API de Google:

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

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

2
mumu

Google vient de mettre à jour les SDK Google Analytics et Google Tag Manager (version 3.14) pour prendre en charge Bitcode, vous pouvez donc mettre à jour les bibliothèques et compiler votre application à l'aide de l'indicateur "Activer Bitcode - Oui".

page de téléchargement

Lien direct

2
Igor Akimov

Si vous utilisez des cocoapodes, vous pouvez l'ajouter à la fin du 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

Cela récursif à travers tous les pods et marquera le ENABLE_BITCODE désactivé. Naturellement, vous ne pourrez pas compiler pour la montre/Apple tv (car ils l'exigent sur certaines versions).

1
kindaian