【原创 附源码】Flutter安卓及iOS海外登录--Apple登录最详细流程

最近接触了几个海外登录的平台,踩了很多坑,也总结了很多东西,决定记录下来给路过的兄弟坐个参考,也留着以后留着回顾。更新时间为2024年2月12日,后续集成方式可能会有变动,所以目前的集成流程仅供参考,但是绝对详细且经过真机验证。

整个记录会包含源码。

dart环境:sdk: '>=2.7.0 <3.0.0'

集成海外登录需要科学上网,一共涉及四个平台,Tiktok,Facebook,Google以及Apple登录。我会分别一一整理记录,所以我的项目就命名为fgta_login (Facebook,Google,Tiktok,Apple登录),奇怪的命名+1。

这篇文章只记录Apple账户登录的详细流程,其他几个平台的集成流程如下:

【原创 附源码】Flutter安卓及iOS海外登录--Google登录最详细流程

【原创 附源码】Flutter安卓及iOS海外登录--Tiktok登录最详细流程

【原创 附源码】Flutter安卓及iOS海外登录--Facebook登录最详细流程

一 Xcode项目配置

Apple登录可谓是海外第三方登录里最简单,最容易实现的一个了,打开iOS项目,点击添加Capability:

然后选择苹果登录,(如果这里没有的话需要去苹果开发者中心,在bundle id的配置里增加 Sign in with Apple的功能,记住账户必须是公司账户才有该选项) :

增加完如下所示:

ios项目就配置完了

二 Flutter 项目配置

苹果登录使用的第三方插件是

复制代码
sign_in_with_apple: ^4.0.0 

插件地址为:sign_in_with_apple | Flutter package

在ymal文件增加插件,然后执行flutter pub get

执行完了记得去ios项目里执行pod install同步第三方插件。

然后开始调用apple登录:

Dart 复制代码
 final credential = await SignInWithApple.getAppleIDCredential(
      scopes: [
        AppleIDAuthorizationScopes.email,
        AppleIDAuthorizationScopes.fullName,
      ],
    );
    if (credential != null) {
      print("苹果登录信息");
      print(credential.toString());
      print(credential.email);
      print(credential.givenName);
      print(credential.userIdentifier);
    }

调用结果如下:

授权完成后,输出用户信息为

但是注意,这里有一个坑点,苹果用户只有第一次授权登录的时候才可以获取到用户的姓名、邮箱这些信息,在第二次登录的时候,这些信息会返回空值,只会返回用户的identfier,第二次多冷结果如下:

可以发现,用户的邮箱和姓名都返回为空了

源码地址:

源码地址:https://github.com/TheRuningAnt/FGTALogin.git

注:这个项目使用的是个人账户,所以未开启apple sign登录功能,但是登录的逻辑和代码是有的且经过完整的测试,兄弟们下载完成之后将bundle id改为自己的,然后在这里增加上苹果登录的授权就可以了,如何增加上文有介绍

相关推荐
又菜又爱coding8 小时前
Android + Flutter打包出来的APK体积太大
android·flutter
QuantumLeap丶9 小时前
《Flutter全栈开发实战指南:从零到高级》- 10 -状态管理setState与InheritedWidget
flutter·前端框架·dart
Pedro9 小时前
Flutter - 日志不再裸奔:pd_log 让打印有型、写盘有序
前端·flutter
QuantumLeap丶10 小时前
《Flutter全栈开发实战指南:从零到高级》- 09 -常用UI组件库实战
flutter·ios·dart
2501_9159184111 小时前
App 上架苹果商店全流程详解 从开发者账号申请到开心上架(Appuploader)跨平台免 Mac 上传实战指南
macos·ios·小程序·uni-app·objective-c·cocoa·iphone
2501_9160074712 小时前
从零开始学习iOS App开发:Xcode、Swift和发布到App Store完整教程
android·学习·ios·小程序·uni-app·iphone·xcode
火柴就是我15 小时前
Element的属性 _inheritedElements 的含义以及创建时机
flutter
Pluto53816 小时前
第一个app产品的迭代
ios·github
2501_9159214317 小时前
iOS 26 CPU 使用率监控策略 多工具协同构建性能探索体系
android·ios·小程序·https·uni-app·iphone·webview
狂团商城小师妹17 小时前
JAVA国际版同城打车源码同城服务线下结账系统源码适配PAD支持Android+IOS+H5
android·java·ios·小程序·交友