Apple Sign In 无法通过 Flutter 完成

Apple Sign In doesn't complete with Flutter

我正在使用 Flutter 和 Firebase 身份验证开发应用程序。
我尝试在我的登录页面中添加 Apple 登录。
我正在学习本教程 https://dev.to/offlineprogrammer/flutter-firebase-authentication-apple-sign-in-1m64.
它有效,Apple 打开我可以登录的组件

但是当我想输入我的密码时,它会无限加载。如果我输入错误的密码,它会立即失败

我没有任何日志,我的代码卡在了

final appleCredential = await siwa.SignInWithApple.getAppleIDCredential(
        scopes: [
          siwa.AppleIDAuthorizationScopes.email,
          siwa.AppleIDAuthorizationScopes.fullName,
        ],
        nonce: nonce,
      );

我在 iOS 15.0 模拟器上尝试了 flutter doctor,如下所示

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.5.0, on macOS 11.4 20F71 darwin-arm, locale
    fr-FR)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] Android Studio (version 4.1)
[✓] Android Studio (version 4.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2020.3.2)
[✓] VS Code (version 1.54.1)
[✓] Connected device (2 available)

• No issues found!

这是一个迟到的答案,但如果你仍然面对它或者将来有人来:
很可能您使用的是无法登录的 iOS 模拟器,无论您尝试登录多少次并检查密码一千次,我也去过那里......您需要使用真正的 iOS.

还有一个建议,如果你尝试发送通知,它也不会在模拟器上工作,这在文档中非常清楚,但仍然有些人会错过它。

问题出在 iOS 14.0/15.0 模拟器上。不幸的是,它在 iOS 15.0 中也没有得到解决。 解决方案是使用 iOS 13.0 作为模拟器。

  1. 下载 iOS 13.0 模拟器。默认情况下你只会有最新的,例如 iOS 15.0,转到 Xcode。在左上角,单击 xcode,然后单击首选项,然后单击组件。下载 iOS 13.0 模拟器。
  2. 单击 运行ner 主页,转到常规(在登录和功能旁边)。在部署信息下,检查 13.0 iOS 版本。
  3. 转到您的 pod 文件并paste/edit结尾处的这个片段
post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
    end
  end
end

这会将您的所有配置设置为所需的 iOS 13.0 版本。

其他要求

  • 确保您已设置开发者苹果帐户

如果你一直关注到现在,应该都运行好了。

我刚刚通过使用 iOS 13.0 模拟器解决了这个问题。似乎使用模拟器时更高版本有问题,但使用物理设备时没有问题。

您可以下载并安装模拟器一直到 iOS 13.0(这是 Apple Sign-In 的最低版本)。在 Xcode:

Xcode > 首选项。 Select“组件”选项卡。标记您想要的模拟器。按“立即检查并安装”。