J'essaie d'intégrer Google Analytics dans mon projet ios à l'aide de Cocoapods. Cependant, après avoir suivi this pour les étapes jusqu’à l’ajout du fichier de configuration à mon projet, lors de l’importation de Google/Analytics.h dans AppDelegate, une erreur s’affiche pour le fichier introuvable. Essayé des choses suivantes:
Ajout de $(SRCROOT)/Pods/GoogleAnalytics
aux chemins de recherche d'en-tête d'utilisateur dans les paramètres de construction.
Ajout de libGoogleAnalyticsServices.a
pour lier le binaire avec les bibliothèques dans les phases de construction.
Ajout de -lGoogleAnalyticsServices
dans Autres drapeaux de l'éditeur de liens.
Ne veulent pas vraiment faire 2 et 3 car ils le rendent libre de cocoapods.
Qu'est-ce qui me manque exactement?
Ajoutez ceci à votre fichier Podfile: pod 'Google/Analytics'
puis pod install
.
Cela devrait fonctionner. Maintenant, vous pouvez simplement importer Google/Analytics.h comme suggéré dans la documentation:
#import <Google/Analytics.h>
J'ai rencontré deux types de problèmes:
L'utilisation de la version de pod suggérée incorrecte (1.0.0) posait un problème de compatibilité 64 bits. (ld: symbol(s) not found for architecture arm64
)
Lors de l'utilisation des autres pods (GoogleAnalytics-iOS-SDK et GoogleAnalytics), je me suis plaint d'un fichier d'en-tête <Google/Analytics.h>
manquant. ("Google/Analytics.h" not found
)
J'ai trouvé le message de ce monsieur sur une liste de diffusion qui suggérait le pod Google/Analytics sans numéro de version. (pod 'Google/Analytics'
comme indiqué ci-dessus.)
Swift 3
Avec la version 3.17.0 (installée à l’aide du pod «GoogleAnalytics» dans Podfile):
#import <GoogleAnalytics/GAI.h>
dans le fichier d'en-tête de pontageEdit: Par le commentaire de jeremy piednoel vous pourriez aussi avoir besoin
#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#import <GoogleAnalytics/GAIFields.h>
Ceci est un bug dans les cocoapods.
vous devez ajouter $ (SRCROOT)/Pods/Google et $ (SRCROOT)/Pods/GoogleAnalytics avec option récursive à vos chemins de recherche d'en-tête d'utilisateur.
Ensuite, incluez le #import "Analytics.h" au lieu de #import
Lorsque vous ajoutez $(SRCROOT)/Pods/GoogleAnalytics
aux chemins de recherche d'en-tête d'utilisateur dans les paramètres de construction, sélectionnez également l'option recursive
. Cela permettra à votre projet de rechercher dans GoogleAnalytics
et tous ses sous-répertoires.
MISE À JOUR: J'ai essayé le tutoriel et il fonctionne bien sans aucune étape supplémentaire. La version de mon pod est 0.35.0. Lorsque vous créez un fichier de configuration, n'oubliez pas d'activer le service GoogleAnalytics.
MISE À JOUR: Comme @RajatTalwar l'a souligné, vous devez également ajouter $ (SRCROOT)/Pods/Google avec l'option récursive. Ensuite, incluez le #import "Analytics.h" au lieu de #import
Si quelqu'un d'autre tente de #importer <import <Google/Analytics.h> et que les autres solutions en ligne ne vous aident pas, vous devriez lire la suite.
J'avais ce problème et aucune des solutions que j'ai trouvées ne résoudrait le problème. Ensuite, j'ai remarqué que l'une de mes cibles fonctionnait alors que l'autre ne fonctionnait pas (j'en avais deux dans le même projet), et j'ai essayé de déterminer quelle était la différence entre les deux cibles.
J'ai remarqué qu'il y avait une différence dans le projet sous l'onglet Général sous Informations de déploiement, où la deuxième cible (celle qui fonctionnait) avait des options séparées pour iPhone et iPad, mais pas la première. Un autre utilisateur en ligne a déclaré avoir reçu ces deux nouvelles options lorsqu'il dupliquait sa cible. Ma deuxième cible était également une copie du premier, à l'origine.
Pour faire court, J’ai trouvé que si je dupliquais ma cible, le doublon fonctionnait soudainement. Ces options séparées pour iPhone et iPad sont également apparues comme par magie. Je suppose donc que ma cible de projet était non standard et posait problème, probablement parce que ce projet a été créé il y a longtemps.
Je viens alors de supprimer la cible d'origine et de renommer le nouveau en même nom, bien que des travaux de nettoyage soient nécessaires dans les paramètres de construction liés au fichier plist (il s'agissait d'un fichier copy.plist).
J'espère que ça aide quelqu'un.
Aussi mon 0,02 $ à cela, car il semble être une histoire sans fin. Aucune des suggestions ci-dessus n'a aidé. J'ai reçu ce message obscur de pod install
[!] The `blabla [Release]` target overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods-blabla/Pods-blabla.release.xcconfig'. This can lead to problems with the CocoaPods installation
Finalement, j'ai inspecté mon project.pxbproj
et découvert que j'avais cette entrée:
HEADER_SEARCH_PATHS = "";`
Évidemment, cela est traité comme "défini", donc je l'ai changé pour
HEADER_SEARCH_PATHS = "$(inherited)";
et boom - tout le Google a suggéré comprend le travail
#import <GoogleAnalytics/GAI.h>
#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#import <GoogleAnalytics/GAIFields.h>
Vérifiez si vous avez plusieurs cibles, dans ce cas, ajoutez le pod 'Google/Analytics' pour chaque cible dans votre fichier de pod:
def google_pods
pod 'Google/Analytics'
end
target 'target 1' do
google_pods
end
target 'target 2' do
google_pods
end
target 'target N' do
google_pods
end