Firebase Analytics не регистрирует события при сборке с сервера сборки - PullRequest
0 голосов
/ 05 июня 2018

Мы интегрировали Firebase Analytics с помощью заданных здесь инструкций по установке (с использованием cocoapods): https://firebase.google.com/docs/ios/setup#add_firebase_to_your_app

Все работает так, как требуется при запуске / сборке приложения из xcode (как отладка).Каждое событие регистрируется.

Источник для init:

DDLogDebug(@"FB: Init");
FIRApp *defaultApp = [FIRApp defaultApp];
if (!defaultApp) {
    DDLogDebug(@"FB: No default app");
    NSString *configPath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"];
    if (configPath) {
        DDLogDebug(@"FB: Hurraaaa, The firebase GoogleService-Info.plist file is in bundle, configPath: %@", configPath);
        NSString *file = [NSString stringWithContentsOfFile:configPath encoding:NSUTF8StringEncoding error:nil];
        DDLogDebug(@"FB: File is: %@", file);

        FIROptions *options = [FIROptions defaultOptions];
        DDLogDebug(@"APIKey          = %@", options.APIKey);
        DDLogDebug(@"trackingID      = %@", options.trackingID);
        DDLogDebug(@"googleAppID     = %@", options.googleAppID);
        DDLogDebug(@"clientID        = %@", options.clientID);
        DDLogDebug(@"GCMSenderID     = %@", options.GCMSenderID);
        DDLogDebug(@"androidClientID = %@", options.androidClientID);
        DDLogDebug(@"databaseURL     = %@", options.databaseURL);
        DDLogDebug(@"storageBucket   = %@", options.storageBucket);
        DDLogDebug(@"bundleID        = %@", options.bundleID);
        DDLogDebug(@"projectID       = %@", options.projectID);

        [FIRApp configureWithOptions:options];
        DDLogDebug(@"FB: DID CONFIGURE");
    } else {
        DDLogDebug(@"FB: Warning: The firebase config file is missing.");
        DDLogWarn(@"Warning: The firebase config file is missing.");
    }
} else {
    DDLogDebug(@"FB: Have a default app");
}

Источник для журнала:

NSDictionary *params = [self paramsForTrackingEvent:trackingEvent
                           usingTrackingEventConfig:trackingEventConfig];

__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
    [FIRAnalytics logEventWithName:[[weakSelf conformsString:compiledActionTemplate] pk_truncateByIndex:kFirebaseAnalyticsKeyMaxCount]
                        parameters:params.allKeys.count > 0 ? params : nil];
});
DDLogDebug(@"*** TRACK [FIREBASE_ANALYTICS,ACTION]: %@", compiledActionTemplate);

Теперь у нас есть следующая проблема:

Мы автоматически создаем наши приложенияс jenkins и некоторыми дополнительными bash-скриптами , который сам выполняет результирующие команды сборки xcode для создания одного результирующего ipa. Но созданный ipa не регистрирует никаких событий. Даже если ipa использует тот же GoogleService-Info.plist из рабочей отладочной версии в xcode.

Итак, мыдобавили некоторые журналы отладки в наше приложение, а также наблюдаем за журналом из firebase:

Инициализация выглядит нормально:

standard    10:32:39.941315 +0200   hellfire    5.0.0 - [Firebase/Analytics][I-ACS023007] Firebase Analytics v.50000000 started
standard    10:32:39.941402 +0200   hellfire    5.0.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://xxxxxxxx)

Хотя firebase правильно инициализирует способ, он выдает некоторые сообщения об ошибках после регистрациисобытие:

standard    10:32:41.008690 +0200   hellfire    5.0.0 - [Firebase/Analytics][I-ACS012011] Received empty measurement bundle metadata for getting dictionary representation
standard    10:32:41.010648 +0200   hellfire    5.0.0 - [Firebase/Analytics][I-ACS023068] Data loss. Cannot record event metadata. Error: Error Domain=com.google.gmp.measurement.ErrorDomain Code=2 "Failed to insert/update unknown data type" UserInfo={NSLocalizedDescription=Failed to insert/update unknown data type}
standard    10:32:41.011612 +0200   hellfire    5.0.0 - [Firebase/Analytics][I-ACS034010] Transaction failed

=> Эта ошибка та же с этими версиями Firebase:

4.11.0, 4.13.0, 5.0.1

Мы потратили сейчаснесколько дней, чтобы проверить все настройки сборки, инициализацию Firebase (сравнить документы), и мы понятия не имеем, что происходит не так.Предполагая, что все проекты Firebase настроены правильно, что еще мы можем упустить?

Build-System в настоящее время использует это:

High Sierra 10.13.4 (17E199), Xcode 9.3 Build 9E145, Cocoapods 1.5.0, Firebase Core 5.0.1

...