我让我的HockeyApp用户使用他们的电子邮件地址进行身份验证,如in the HockeyApp documentation所述。
如何从应用内获取用户的电子邮件(或ID或名称)?
有些属性似乎包含这些值,但它们似乎是只写的,并且始终返回为ThermoWindow
:( docs)
nil
标题文档说"另见" this method:
[BITHockeyManager sharedHockeyManager].userEmail
[BITHockeyManager sharedHockeyManager].userName
[BITHockeyManager sharedHockeyManager].userID
但我无法找到类型为 [BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:]
的对象的位置。
答案 0 :(得分:3)
您在上面提到的属性,以及BITHockeyManagerDelegate
中的委托方法用于丰富崩溃报告和反馈消息以及有关您用户的其他元数据。
在身份验证过程中使用的电子邮件地址已安全地保存到iOS钥匙串中,并且应用程序开发人员通常无法轻松访问。
我更正了:事实上,正是出于这个目的,有一个公共API,[[BITHockeyManager sharedManager].authenticator publicInstallationIdentifier]
。
另请查看documentation或实际的code。
在应用中的任意位置获取用户电子邮件的示例:
NSString *email = BITHockeyManager.sharedHockeyManager.authenticator.publicInstallationIdentifier;
请注意,这将根据您设置身份验证器的方式返回 用户电子邮件(kBITAuthenticatorUserEmailKey
)或ID代码(kBITAuthenticatorIdentifierKey
)。要使用电子邮件身份验证进行设置,我使用了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];