2016-04-11 13 views
1

in the HockeyApp documentationと記載されているように、HockeyAppユーザーが自分のメールアドレスで認証しています。iOSアプリ内からHockeyAppのユーザーのEメール/ IDを取得する方法は?

アプリ内からユーザーのメール(またはID、または名前)を取得するにはどうすればよいですか?

は、これらの値を保持するように思われる性質がありますが、彼らは書き込み専用のように見える、と常に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をご覧ください。アプリ内の任意の場所にユーザーの電子メールを取得するための

例:これは、あなたのオーセンティケータの設定方法に基づいていずれかユーザーの電子メール(kBITAuthenticatorUserEmailKey)またはIDコード(kBITAuthenticatorIdentifierKeyを)返すこと

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

注意。電子メール認証を使用して設定するには、BITAuthenticatorIdentificationTypeHockeyAppEmailを使用しました。私のAppDelegateのHockeyAppコードは次のとおりです。

[[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のユーザ識別子を*リセットする必要がある場合は、[[BHIockeyManager sharedHockeyManager] .authenticator cleanupInternalStorage];を使用してください。[here](http://hockeyapp.net/help/sdk/ios/) 3.8.2/Classes/BITAuthenticator.html#// api/name/cleanupInternalStorage)。 –

+0

正しい。ユーザーが認証資格情報の入力を求めるメッセージが表示される可能性があることに注意してください。 –

関連する問題