2016-04-11 10 views
1

Ich habe meine HockeyApp-Benutzer mit ihrer E-Mail-Adresse authentifizieren, wie beschrieben in the HockeyApp documentation.Wie erhalte ich HockeyApp-Benutzer-E-Mail/ID aus der iOS App?

Wie kann ich die E-Mail-Adresse (oder ID oder den Namen) des Benutzers in der App abrufen?

Es gibt Eigenschaften, die diese Werte zu halten scheint, aber sie scheinen Schreib nur zu sein, und kehren immer als nil: (docs)

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

Die Header-docs sagen „siehe auch“ this method :

[BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:] 

Aber ich kann BITHockeyBaseManager wo bekommt ein Objekt vom Typ nicht gefunden.

+0

Diese Eigenschaften dienen zum Festlegen von Daten, die an Absturzberichte angehängt werden. Ich glaube nicht, dass Sie auf die Informationen zugreifen können, die der Benutzer verwendet hat, um sich zu authentifizieren – dan

+0

@dan Stellt heraus, dass es * zugänglich ist, wie Lukas entdeckte. Sehr hilfreich! –

Antwort

3

Die oben erwähnten Eigenschaften und alternativ die Delegate-Methoden in BITHockeyManagerDelegate werden verwendet, um Absturzberichte und Rückmeldungen mit zusätzlichen Metadaten zu Ihrem Benutzer anzureichern.

Die E-Mail-Adresse, die während des Authentifizierungsvorgangs verwendet wird, wird sicher im iOS-Schlüsselbund gespeichert und ist normalerweise für den App-Entwickler nicht leicht zugänglich.
Ich stehe korrigiert: Eigentlich gibt es eine öffentliche API für genau diesen Zweck, [[BITHockeyManager sharedManager].authenticator publicInstallationIdentifier]. Werfen Sie auch einen Blick auf die documentation oder die tatsächliche code.

Beispiel für in der App-Nutzer E-Mail immer überall:

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

Beachten Sie, dass dies wird wieder entweder der Benutzer E-Mail (kBITAuthenticatorUserEmailKey) oder ein ID-Code (kBITAuthenticatorIdentifierKey), basierend auf, wie Sie Ihren Authenticator einrichten . Um die E-Mail-Authentifizierung einzurichten, habe ich BITAuthenticatorIdentificationTypeHockeyAppEmail verwendet. Hier ist der HockeyApp-Code in meinem 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

Außerdem: Wenn Sie die Benutzerkennung für HockeyApp * zurücksetzen * müssen, verwenden Sie '[[BITHockeyManager sharedHockeyManager] .authenticator cleanupInternalStorage];', wie hier [dokumentiert] (http://hockeyapp.net/help/sdk/ios/ 3.8.2/Classes/BITAuthenticator.html # // api/name/cleanupInternalStorage). –

+0

Richtig. Beachten Sie jedoch, dass der Benutzer dann möglicherweise erneut nach seinen Authentifizierungsdaten gefragt wird. –