2016-04-11 2 views
1

У меня есть мои пользователи HockeyApp, аутентифицирующие их адрес электронной почты, как описано in the HockeyApp documentation.Как получить адрес/идентификатор пользователя HockeyApp из приложения iOS?

Как я могу получить адрес электронной почты пользователя (или идентификатор или имя) из приложения?

Есть свойства, которые, казалось бы держать эти значения, но они, кажется, только для записи, и всегда возвращается в nil: (docs)

[BITHockeyManager sharedHockeyManager].userEmail 
[BITHockeyManager sharedHockeyManager].userName 
[BITHockeyManager sharedHockeyManager].userID 

Заголовок документы говорят «Смотри также» this method :

[BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:] 

Но я не могу найти, где можно получить объект типа BITHockeyBaseManager.

+0

Эти свойства предназначены для установки данных, которые привязаны к отчетам о сбоях. Я не думаю, что вы можете получить доступ к информации, которую пользователь использовал для аутентификации. – dan

+0

@dan. Оказывается, это * доступно, как заметил Лукас. Очень полезно! –

ответ

3

Свойства, о которых вы говорили выше, а также методы делегатов в BITHockeyManagerDelegate используются для обогащения отчетов о сбоях и сообщений обратной связи с дополнительными метаданными о вашем пользователе.

Адрес электронной почты, используемый во время процесса аутентификации, надежно сохраняется в цепочке ключей iOS и обычно недоступен разработчику приложения.
Я стою исправлено: На самом деле, существует общедоступный API для этой цели, [[BITHockeyManager sharedManager].authenticator publicInstallationIdentifier]. Также посмотрите на documentation или на самом деле code.

Пример для получения электронной почты пользователя в любом месте приложения:

NSString *email = BITHockeyManager.sharedHockeyManager.authenticator.publicInstallationIdentifier; 

Обратите внимание, что это вернет либо пользователь электронной почты (kBITAuthenticatorUserEmailKey) или код ID (kBITAuthenticatorIdentifierKey), основанный на том, как вы создали свой аутентификатор , Чтобы настроить аутентификацию по электронной почте, я использовал BITAuthenticatorIdentificationTypeHockeyAppEmail. Вот код HockeyApp в моем AppDelegate:

[[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"<#App id#>" delegate:self]; 
[[BITHockeyManager sharedHockeyManager].authenticator setAuthenticationSecret:@"<#App Secret#>"]; 
[[BITHockeyManager sharedHockeyManager].authenticator setIdentificationType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; 
[[BITHockeyManager sharedHockeyManager] startManager]; 
[[BITHockeyManager sharedHockeyManager].authenticator authenticateInstallation]; 
+0

Также: Если вам нужно * сбросить * идентификатор пользователя для HockeyApp, используйте '[[BITHockeyManager sharedHockeyManager] .authenticator cleanupInternalStorage];', как описано [здесь] (http://hockeyapp.net/help/sdk/ios/ 3.8.2/Классы/BITAuthenticator.html # // апи/имя/cleanupInternalStorage). –

+0

Исправить. Просто имейте в виду, что пользователь может быть запрошен повторно для своих учетных данных. –