Xcode (ベータ 11.0 ベータ 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
}
}
私のデバッグに基づいて、どちらの場合もコードが実行され、電子メール + フルネーム スコープが authorizationController に設定されていることがわかりました。
どちらの場合も、[Apple でサインイン] が表示され、フルネームについて尋ねられ、メールを非表示にするかどうかを尋ねられることを期待しています...
ただし、シミュレーターでのみ発生します。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 の構成を調べてみましたが、それが問題なのかどうかはわかりません。