【问题标题】:com.apple.AuthenticationServices.Authorization Error Code 1000com.apple.AuthenticationServices.Authorization 错误代码 1000
【发布时间】:2020-04-06 19:51:36
【问题描述】:

我在 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)
{
...
}
  • 我在 Entitlements.plist 中检查了 Apple 登录
  • 我在管理控制台中创建了应用程序 ID,验证了我的域。甚至网络身份验证也已经有效。
  • 我尝试将配置文件切换为使用 Apple 登录的配置文件。

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

【问题讨论】:

    标签: xamarin xamarin.forms xamarin.ios visual-studio-mac apple-sign-in


    【解决方案1】:

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

    但我通过登录here 并删除设备下的模拟器解决了这个问题。然后再次构建它。不要忘记在“Signing & Capabilities”中添加“Sign in with Apple”。

    【讨论】:

    • 我发现它在模拟器上工作了一段时间,然后它开始失败并出现这篇文章中的错误代码。 Noe的建议对我有用。这可能是由于从多个不同的模拟器设备登录,不确定,但如上所述从我的开发帐户中删除它就是我所需要的。甚至不必重建或重新启动。刚刚重试并成功。
    • @PaulBruneau 同样的情况:)
    【解决方案2】:

    我正在使用 Swift,我要说一下,有时 iPhone 上的 Apple Id 登录需要双因素授权,所以我的代码是

            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
            }
    

    密码请求ASAuthorizationPasswordProvider被注释并跳过该行,原因是手机上的Apple ID。

    当需要Apple ID 需要双重授权时,我们可以请求此提供者ASAuthorizationPasswordProvider,我们必须删除代码。删除行代码后,所有运行工作。

    【讨论】:

    • 听起来您发现了一个用户也可能面临的问题,除非您确信这只是一个 sim 问题?
    【解决方案3】:

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

    其次,我花了几个小时才发现我错过了在 release 配置中添加带有 Apple ID 权利的签名,所以我只是完成了我在这里所做的事情。

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

    1。在 Xcode 中检查 Signing & capabilities 下的 every tab

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

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

    【讨论】:

    • 出于某种原因,我的能力只有(调试)。我换电脑的时候肯定变了,因为它以前可以工作。但这救了我,我改变了,它奏效了!谢谢!!!
    【解决方案4】:

    在密码和安全设置中使用 Apple ID 从应用程序中删除应用程序

    要删除应用,请转到设置 > 个人资料 > 密码和安全 > 使用 Apple id 的应用 > 您的应用 > 停止使用 Apple id

    【讨论】:

    • 你可以详细解释一下我们为什么要这样做?
    【解决方案5】:

    我遇到了同样的问题。

    我的代码:

    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(),问题就消失了。我认为苹果将来会解决这个问题。

    【讨论】:

      【解决方案6】:

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

      【讨论】:

      • 我在我的问题中提到了它。 I checked Apple Sign-in in the Entitlements.plist
      • @AccessDenied 你说得对。对不起。在寻找我的问题时,我通过标题找到了它。如果没有帮助,我可以删除它。
      • 没关系,留给其他人吧。也许它会帮助别人。
      • 也帮助了我。这种设置在从 Cordova 到 Capacitor 的过渡中无法幸免
      【解决方案7】:

      尽管 Apple 提供了具有误导性的文档,但不需要执行验证步骤。

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

      确保将“Apple 登录”权利添加到您的构建设置以及来自开发者门户的 Apple 证书中。

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

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

      【讨论】:

      【解决方案8】:

      两天过去了。

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

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

      <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
      

      在所有构建配置中添加/更新它之后,它终于可以工作了。

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

      【讨论】:

      • 这是我的问题的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 2016-11-10
      • 1970-01-01
      • 2015-11-28
      • 1970-01-01
      • 2018-08-14
      相关资源
      最近更新 更多