Flutter 集成 Apple Sign In 登录

本文最后更新于:2026年3月17日 晚上

使用插件和文档:sign_in_with_apple

完成 Flutter 集成 Apple Sign In 的IOS端登录。

1. develop开发者账号配置

  • 登录 Apple Developer
  • 进入“Certificates, Identifiers & Profiles”。
  • 找到你的 App Identifier(Bundle ID),点击进入详情。
  • 在 Capabilities 列表中勾选 Sign In with Apple。
  • 保存设置,并重新生成/下载描述文件(Provisioning Profile)。

注意:
keys和Service ID仅在Web或Android集成时需要。如果只打算在iOS上集成,那就不需要配置;
因为ios端会自动和apple服务器连接验证信息,只有使用android和web端的apple id登录才需要配置service id(里面有回调地址),为了和apple服务器通信验证身份,所以才需要这些。

2. xcode工程配置

ios在xcode工程里面要加上Sign In with Apple capability;

3. 注意事项:

1、如果你要使用android和web端的apple id登录才需要配置key 和 service id,如果仅仅是ios端,那就不需要。

2、只有第一次登录(完全授权)才能返回userIdentifier,familyName,givenName,email这些全部信息,再次点击就没有familyName,givenName,email这几项了,真烦啊,所以你要在第一次登录时后台存一下这些数据,然后按照userIdentifier找找是不是已存在;

如果你还想再模拟第一次授权登录,在https://appleid.apple.com/网站,→ 登录和安全 → 通过 Apple ID 登录 这里删掉你授权的app,就可以了。

3、如果用户选择隐藏email,会返回一个代理邮箱,用户还可以更换实际的familyName,givenName。

3. 示例

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void appleIdLogin() async {
final credential = await SignInWithApple.getAppleIDCredential(
scopes: [
AppleIDAuthorizationScopes.email,
AppleIDAuthorizationScopes.fullName,
],
);
// SignInWithApple.
print(credential.userIdentifier);
print(credential.familyName);
print(credential.givenName);
print(credential.email);
print(credential.authorizationCode);
print(credential.identityToken);
print(credential.state);
}


Flutter 集成 Apple Sign In 登录
http://bestkele.com/2024/02/21/flutter/flutter-signInWithApple/
作者
kele
发布于
2024年2月21日
许可协议