Я пытаюсь установить идентификатор пользователя для отчетов Firebase Crashlytics.
В настоящее время я отправляю идентификатор пользователя, только если он не отправлен или изменен (очень редкое событие). И в отчетах о сбоях нет идентификатора пользователя.
Мой код:
+ (void)setCrashlyticsUserData:(User *)user
{
if (user == nil) { return; }
NSString *userIdKey = @"CRASHLYTICS_SENT_USER_ID";
NSUserDefaults *userDefaults = NSUserDefaults.standardUserDefaults;
NSInteger sentUserId = [userDefaults integerForKey:userIdKey];
if (sentUserId == user.userId) { return; }
[CrashlyticsKit setUserIdentifier:[NSString stringWithFormat:@"%i", user.userId]];
[userDefaults setInteger:user.userId forKey:userIdKey];
}
Если эта строка закомментирована if (sentUserId == user.userId) { return; }
я получаю идентификатор пользователя в отчетах о сбоях.
Должен ли я звонить [CrashlyticsKit setUserIdentifier:]
при каждом запуске приложения? Я не могу найти информацию об этом в документации.
Вы можете использовать [Crashlytics setUserIdentifier:]
, чтобы предоставить идентификационный номер, токен или хэшированное значение, которое однозначно идентифицирует конечного пользователя вашего приложения без раскрытия или передачи какой-либо его личной информации. Вы также можете очистить значение, задав для него пустую строку. Это значение отображается прямо на панели инструментов Crashlytics.
[CrashlyticsKit setUserIdentifier:@"123456789"]; //User ID
Или другой вариант — установить пользовательский ключ с помощью [CrashlyticsKit setObjectValue:forKey:]
, см. следующий пример.
[CrashlyticsKit setIntValue:3 forKey:@"userid"];
[CrashlyticsKit setObjectValue:@"logged_in" forKey:@"last_UI_action"];
См. этот документ для получения дополнительной информации.
https://docs.fabric.io/apple/crashlytics/enhanced-reports.html
да, вы можете вызывать [CrashlyticsKit setUserIdentifier:] при каждом запуске приложения
Пользовательские атрибуты Crashlytics (такие как пользовательские ключи или идентификатор пользователя) работают в стиле журнала для каждого сеанса. Таким образом, вы должны вызывать setUserIdentifier в каждом сеансе приложения как можно раньше. См. эту ссылку для примера кода:
Я прочитал документ. Мой вопрос заключался в том, должен ли я звонить
[CrashlyticsKit setUserIdentifier:]
при каждом запуске приложения