注册Apple开发者账号,费用是99美元/年,可人民币支付。
https://developer.apple.com/account
创建应用可以在Web端操作,也可以在Xcode操作,如下演示的是在Xcode中进行操作。
在Runner
的Signing & Capabilities
中Team选择开发者账号,若没有,点加号进行登录。
点击+Capability
搜索Sign in
和Push
选择登录和消息推送能力。
(可选)如果使用Firebase进行Apple登录,则可以添加Apple登录方法。
如果是在Apple平台使用Apple登录,则不需要填写其它配置,直接启用即可。
如果使用Firebase进行Apple登录,则不需要引用sign_in_with_apple
插件,需要引用firebase_auth
插件,关于Firebase的使用,参考Google登录。
插件的地址如下:
https://pub.dev/packages/sign_in_with_apple
pubspec.yaml中依赖配置如下:
sign_in_with_apple: ^6.1.1
# 非必需
auth_buttons: ^3.0.3 # 登录按钮样式
添加Apple登录按钮,可以自己定义样式,也可以使用auth_buttons
插件提供的按钮AppleAuthButton
,更多按钮可以参考该插件的介绍页面。
以下代码中Platform.isIOS
判断了当前平台是否是iOS,如果是,才显示Apple登录按钮。
if (Platform.isIOS)
AppleAuthButton(
onPressed: () async {
if (await signInWithApple()) {
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => const MyHomePage()),
(route) => false,
);
}
},
),
登录的业务代码如下,注意调用登录的时候不要使用开发者账号,否则拿不到用户信息!!
// Apple 原生登录
Future<bool> signInWithApple() async {
final credential = await SignInWithApple.getAppleIDCredential(
scopes: [
AppleIDAuthorizationScopes.email,
AppleIDAuthorizationScopes.fullName,
],
);
return true;
}
如果使用Firebase进行登录,代码如下:
// Apple Firebase 登录
Future<bool> signInWithApple() async {
final applerProvider = AppleAuthProvider();
final auth = await FirebaseAuth.instance.signInWithProvider(applerProvider);
if (auth.user == null) return false;
print(auth.user);
IdTokenResult? idTokenResult = await auth.user?.getIdTokenResult(true);
return true;
}
// 退出 Apple Firebase 登录
Future<void> signOutApple() async {
await FirebaseAuth.instance.signOut();
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。