2015-07-10 2 views
5

Я следил за этим Google developer guide, чтобы добавить Google Analytics в приложение iOS с помощью Cocoa Pods. Я добавил GoogleService-Info.plist и поместил код инициализации в didFinishLaunchingWithOptions. Приложение строит отлично, но затем падает в точке, где пытается инициализировать GA. Конкретно эти строки кода:Ошибка настройки Google Analytics для приложения iOS с помощью GoogleService-Info.plist

NSError *configureError; 
[[GGLContext sharedInstance] configureWithError:&configureError]; 
NSAssert(!configureError, @"Error configuring Google services: %@", configureError); 

Заявление утверждают сбою и выход в консоли:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: 'Error configuring Google services: 
Error Domain=com.google.greenhouse Code=-200 "Unable to configure GGL." 
{NSLocalizedFailureReason=Unable to parse supplied GoogleService-Info.plist. See log for details., 
NSLocalizedRecoverySuggestion=Check formatting and location of GoogleService-Info.plist., 
NSLocalizedDescription=Unable to configure GGL.}' 

Я могу видеть, что это связано с файлом GoogleService-Info.plist и после некоторого исследования я обнаружил, что даже если я удалю GoogleService-Info.plist Я получаю ошибку, которая заставляет меня думать, что я не добавил файл в проект правильно.

Вот скриншот того, что я проверил при добавлении файла:

enter image description here

Таким образом, я удостоверился, что он будет добавлен ко всем целям и что файл находится в корневом каталоге проекта , а также файлы xcodeproj и xcworkspace, как указано в руководстве разработчика Google.

Я также должен упомянуть, что это проект SpriteBuilder, но я не думаю, что это имеет какое-либо отношение к этому. Кроме того, это был первый Cocoa Pod, который я добавил, но все кажется прекрасным, поскольку проект строит и может найти все заголовки Google, в которых он нуждается.

+0

Первоначально говорят, что в чем смысл использования ** GoogleService-Info.plist ** в вашем приложении не нужно этого, если вы используете только в аналитике, вам это не нужно –

+0

Извините, я не понимаю, что вы говоря. Библиотека Google Analytics ожидает, что этот файл будет включен в проект. Он ищет его, когда вызывается '[[GGLContext sharedInstance] configureWithError: & configureError];'. Следующее руководство я создал этот файл для загрузки и явным образом поручил мне добавить его в проект. Это файл свойств, содержащий 'TRACKING_ID' для учетной записи GA. – Choc13

+0

попробуйте это [ссылка] (http://www.raywenderlich.com/53459/google-analytics-ios) может помочь вам –

ответ

6

Я тоже застрял в этом странном фрагменте кода. Но вам это не нужно! Просто удалите configureWithError и все это.

Все, что вам нужно:

[[GAI sharedInstance] trackerWithTrackingId:@"UA-11111111-2"]; 
[GAI sharedInstance].trackUncaughtExceptions = YES; 

Где-то внутри didFinishLaunchingWithOptions. (Это из предыдущей версии GA, верно?) Итак, вот и все! Тогда все, что вы хотите в вашем приложении:

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; 
[tracker set:kGAIScreenName value:@"start screen"]; 
[tracker send:[[GAIDictionaryBuilder createScreenView] build]]; 

Мой Podfile выглядит следующим образом:

source 'https://github.com/CocoaPods/Specs.git' 

pod 'Google/Analytics', '~> 1.0.0' 

Это работает!

0

Если вы уже интегрируете знак google, он предоставляет plist для доступа к деталям службы входа в ваше приложение. Это означает, что когда вы пытаетесь интегрировать аналитику, вам не нужно добавлять новый GoogleService-Info.plist. Вы просто добавляете следующие ключи, отсутствующие в существующем файле plist.