我正在尝试使用 Xcode(Beta 11.0 beta 6)设置 Apple 登录。
在模拟器上效果很好,但是当我在我的 iPhone (iOS 13.1) 上运行它时,我没有得到相同的显示。
在模拟器上:
在 iPhone 上:
这就是我所说的“使用 Apple 登录”的方式:
- (IBAction)signInWithApple:(id)sender {
if (@available(iOS 13.0, *)) {
ASAuthorizationAppleIDProvider *appleIDProvider = [[ASAuthorizationAppleIDProvider alloc] init];
ASAuthorizationAppleIDRequest *request = [appleIDProvider createRequest];
request.requestedScopes = @[ASAuthorizationScopeFullName,ASAuthorizationScopeEmail];
ASAuthorizationController *authorizationController = [[ASAuthorizationController alloc] initWithAuthorizationRequests:@[request]];
authorizationController.delegate = self;
authorizationController.presentationContextProvider = self;
[authorizationController performRequests];
} else {
// Fallback on earlier versions
}
}
根据我的调试,我知道在这两种情况下都会执行代码,并且在授权控制器中设置了电子邮件 + 全名范围。
我希望在这两种情况下都能看到使用苹果登录并询问我的全名以及是否想隐藏我的电子邮件......
但它只发生在模拟器上。在 iPhone 上,我只是“继续”,让我的脸认出来……就是这样。
在这两种情况下,这都是在以下情况下调用的:
-(void)authorizationController:(ASAuthorizationController *)controller
didCompleteWithAuthorization:(ASAuthorization *)authorization API_AVAILABLE(ios(13.0)){
ASAuthorizationAppleIDCredential *appleIDCredential = authorization.credential;
...
但在模拟器的情况下,我可以获得
"appleIDCredential.identityToken"
"appleIDCredential.email"
"appleIDCredential.fullName"
在我的 iPhone 上,我只能获得以下值
"appleIDCredential.identityToken"
谢谢您的帮助 !:)
PS:在这两种情况下,我都尝试使用同一个 Apple 帐户进行连接,因此我尝试查看 Apple 配置,但我不确定是否是问题所在。