com.apple.AuthenticationServices.Authorization 错误代码 1000

com.apple.AuthenticationServices.Authorization Error Code 1000

我在 DidCompleteWitherror 中收到以下错误:

com.apple.AuthenticationServices.Authorization Error Code 1000

我正在使用以下代码登录 Apple

var appleIdProvider = new ASAuthorizationAppleIdProvider();
var request = appleIdProvider.CreateRequest();
request.RequestedScopes = new ASAuthorizationScope[] { ASAuthorizationScope.Email, ASAuthorizationScope.FullName };
var authController = new ASAuthorizationController(new[] { request });
authController.Delegate = this;
authController.PresentationContextProvider = this;
authController.PerformRequests();
...
[Export("authorizationController:didCompleteWithAuthorization:")]
public void DidComplete(ASAuthorizationController controller, ASAuthorization authorization)
{
...
}

[Export("authorizationController:didCompleteWithError:")]
public void DidComplete(ASAuthorizationController controller, NSError error)
{
...
}

这个错误可能是什么原因?

不需要 Apple 的验证步骤,尽管他们的文档具有误导性。

您能否尝试 运行 一个新版本并确保创建一个新的配置文件,其中包含更新的功能?

确保 "Apple Sign-in" 权利已添加到您的构建设置中,并添加到开发者门户的 Apple 证书中。

如果您运行正在开发开发版本,请尝试切换到生产版本。您可能需要为 Ad Hoc 分发签署应用程序包并以这种方式安装它。

您可以在 Apple Documentation 中查看,1000 错误代码实际上意味着错误未知,因此此解决方案可能不适合您。就您的代码而言,对我来说似乎没问题! 您也可以 check these samples!

原来是csproj中缺少设置的问题

在这里找到答案: https://xamarin.github.io/bugzilla-archives/25/25141/bug.html

我打开 csproj 发现一些构建配置缺少 CodesignEntitlements,其中一些是空的:

<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>

添加它后 to/updating 它在所有构建配置中终于起作用了。

PS:在此之前,我尝试创建空的 xamarin 项目(具有相同的包名称),它在模拟器上重现了该问题。然后我做了 swift 项目(具有相同的包名称)并且工作正常。所以很明显这是 xamarin 特定的错误。

我收到这个错误是因为忘记添加登录功能。

我遇到了同样的问题。

我的代码:

if #available(iOS 13.0, *) {
    let appleIDProviderRequest = ASAuthorizationAppleIDProvider().createRequest()
    appleIDProviderRequest.requestedScopes = [.fullName, .email]
    let passwordProviderRequest = ASAuthorizationPasswordProvider().createRequest()
    let requests = [appleIDProviderRequest, passwordProviderRequest]

    // Create an authorization controller with the given requests.
    let authorizationController = ASAuthorizationController(authorizationRequests: requests)
    authorizationController.delegate = self
    authorizationController.presentationContextProvider = self
    authorizationController.performRequests()
}

我使用 2 个 Apple 帐户测试了这段代码。一个帐户有效,另一个帐户无效。 然后我删除了 ASAuthorizationPasswordProvider().createRequest() 并且问题消失了。我想苹果以后会解决这个问题的。

从在密码和安全设置中使用 apple id 的应用程序中删除应用程序

要删除应用程序,请转至设置 > 配置文件 > 密码和安全性 > 使用 apple id 的应用程序 > 你的应用程序 > 停止使用 apple id

经过搜索我发现它可以在真实设备上运行,有时在模拟器上无法运行。

但我通过登录 here 并删除设备下的模拟器解决了这个问题。然后再次构建它。不要忘记在“签名和功能”中添加“使用 Apple 登录”。

首先,以上所有答案对我来说都是正确的。

其次,我花了几个小时才发现我没有在 release 配置中添加 Sign with Apple ID Entitlements,所以我刚刚完成了这里的操作。

您可以通过下面的any one查看:

1。在 Xcode

中检查 Signing & capabilities 下的 every tab

2。在vscode(或其他文件工具)中搜索com.apple.developer.applesignin,您应该找到3 Entitlements files

3。检查vscode(或其他文件工具)中的files in project folder,您应该找到包含com.apple.developer.applesignin3 Entitlements files

我用的是Swift,我说一下,有时候在iPhone上登录Apple Id需要Two-Factor授权,所以我的代码是

        if #available(iOS 13.0, *) {
            let appleIDProvider = ASAuthorizationAppleIDProvider().createRequest()
            appleIDProvider.requestedScopes = [.fullName, .email]
            
            //let passwordProvider = ASAuthorizationPasswordProvider().createRequest()
            
            let authorizationController = ASAuthorizationController(authorizationRequests: [appleIDProvider])
            authorizationController.delegate = self
            authorizationController.presentationContextProvider = self
            authorizationController.performRequests()
        } else {
            // Fallback on earlier versions
        }

由于 phone 上的 Apple Id 原因,密码请求 ASAuthorizationPasswordProvider 被注释并跳过了该行。

当需要一个Apple ID需要Two-Factor授权,那么我们就可以请求这个提供者ASAuthorizationPasswordProvider,我们要删除代码。删除行代码后,所有 运行 工作。