2017-01-13 6 views
3

Je suis tombé sur un problème vraiment étrange qui m'a occupé pendant plus d'une semaine, ce que je crois être un bug avec le SDK GoogleAdMob, Xcode 8.2, Cocoapods ou un combinaison de ceux-ci.Problème obscur, SDK Google AdMob, intégration de XCode 8.2 + Cocoapods

Je l'affiche ici, dans l'espoir qu'un ingénieur puisse confirmer le bogue et diriger notre équipe dans la bonne direction vers la résolution.

Le problème va comme ceci:

  1. Créer un projet Xcode vide
  2. Ajouter/INSTALL GoogleAds-IMA-iOS-SDK-For-AdMob pod
  3. engager tout et supprimer le référentiel de la machine locale
  4. Check out dépôt à nouveau
  5. Hit Build. Projet échouera avec l'erreur de construire ld: framework not found GoogleMobileAds
  6. Pour corriger, commenter le pod et exécuter pod update, puis décommenter à nouveau et exécuter à nouveau pod updateGoogleAds-IMA-iOS-SDK-For-AdMob, projet construirons.
  7. Si vous essayez de commettre à ce stade, git ramassera change pas
  8. Répétez les étapes 3 et 4, et vous serez de retour à l'étape 5

J'ai créé un référentiel ici https://github.com/piterwilson/testAdmob où la bug peut être reproduit. Le 'correctif' que j'ai trouvé ne fonctionnera pas pour notre équipe car nous validons notre code et l'envoyons à un serveur Jenkins qui crée beaucoup de builds avec différentes signatures de code requises par notre activité.

Le Jenkins construire échoue toujours avec ld: cadre non trouvé GoogleMobileAds

Informations supplémentaires: Ce ne est arrivé à partir de cette année. Peut-être à cause de Xcode 8.2 (?) Mais nous ne pouvons pas être sûrs où le problème est exactement.

Répondre

1

J'ai créé un PR qui résout le problème de manière fiable: https://github.com/piterwilson/testAdmob/pull/1

Le dépôt était manquant le binaire GoogleAdMobs. C'est un fichier assez volumineux (38M), alors peut-être que l'émetteur de la question a une configuration locale qui ignore automatiquement les gros fichiers? Le binaire aurait dû être dans ce commit: https://github.com/piterwilson/testAdmob/commit/a0834a4d2f2b82da98add1bc3c49d8c0c28ffd86 (au moins c'est quand il est apparu pour moi quand j'ai essayé de reproduire le problème.)

+0

Merci. Après la fusion de votre PR, tout fonctionne. –