我的应用程序具有“使用 Apple 登录”帐户功能。我想知道Apple帐户是否有注销功能。
我尝试了以下但没有成功
let request = ASAuthorizationAppleIDProvider().createRequest()
request.requestedOperation = .operationLogout
let authorizationController = ASAuthorizationController(authorizationRequests: [request])
authorizationController.performRequests()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 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
}
}
Run Code Online (Sandbox Code Playgroud)
根据我的调试,我知道在这两种情况下都执行了代码,并且在授权控制器中设置了电子邮件 + 全名范围。
我希望在这两种情况下都能看到使用苹果登录并询问我的全名以及是否要隐藏我的电子邮件...
但它只发生在模拟器上。在 iPhone 上,我只是“继续”,让我的脸被识别......就是这样。
在这两种情况下,这都是在之后调用的:
-(void)authorizationController:(ASAuthorizationController *)controller
didCompleteWithAuthorization:(ASAuthorization *)authorization API_AVAILABLE(ios(13.0)){
ASAuthorizationAppleIDCredential *appleIDCredential = …Run Code Online (Sandbox Code Playgroud) 我已经在我的一个应用程序中实现了 Apple SignIn。但是当用户选择隐藏我的电子邮件时,我得到的电子邮件和全名为零值。有人可以帮我解决这个问题吗?
我刚刚将新的苹果登录集成到我的应用程序中。第一次尝试注册时,我收到了 fullName、email 和didCompleteWithAuthorization方法中的其他凭据,但是在下次尝试时 fullName、email 和其他用户数据为零。我认为这是因为jwt令牌已经生成。我试图研究热点以注销但找不到任何解决方案。如果有人有同样的问题,请帮助我。为了测试,我需要多次获取凭据。所以我需要以某种方式注销。
这就是我的要求:
let provider = ASAuthorizationAppleIDProvider()
let request = provider.createRequest()
request.requestedScopes = [.fullName, .email]
let controller = ASAuthorizationController(authorizationRequests: [request])
controller.delegate = self
controller.presentationContextProvider = self
controller.performRequests()
Run Code Online (Sandbox Code Playgroud)