使用苹果登录首先需要在苹果开发者后台开启 App 的 Sign In with Apple 服务

1.登录到苹果开发者后台 编辑对应的 Identifier 勾选 Sign In with Apple 服务并保存

 

 

2.勾选或取消服务,会导致之前的 profile 描述文件失效,不需要新建,只要点击 Edit 重新编辑对应的 profile文件,然后保存下载使用新的profile文件即可

 

 

 

在 HBuilderX 编辑项目的 manifest.json ,在 App SDK配置中找到苹果登录,并勾选。

 

 

 

登录按钮样式

苹果对登录按钮样式有要求,请按照苹果要求统一设置登录按钮的样式,否则审核可能会被拒绝

需要注意的是:

  • 按钮必须在显著的位置(避免滑动屏幕才能看到)
  • 登录按钮有三种外观:白色,带有黑色轮廓线的白色和黑色,其他设计可能会影响审核;
  • 按钮圆角范围及按钮最小尺寸也有要求;
  • 具体规则请参考苹果 官方文档

注:因为是 iOS13+ 系统才支持苹果登录,所以建议在App的界面入口判断下,只有 iOS13 才显示Apple登录的选项

        onLoad() {
            uni.getSystemInfo({
                success:(res) => {
                    // console.log(res)
                    this.system = res.system  // ios
                    this.platform = res.platform  // 14.3
                }
            })
        },
<!-- 苹果登录 -->
<view class="item-1-2" v-if="platform == 'ios' && system >= '13'" @click="LoginForApple">
  <
image mode="widthFix" src="../../../static/center-icon/OS_Apple-2.png"></image>
</
view>
            // 苹果登录
            LoginForApple() {
                uni.getProvider({
                    service: 'oauth',
                    success: function (res) {
                        // console.log(res.provider)
                        if(~res.provider.indexOf('apple')) {
                            uni.login({
                                provider: 'apple',
                                success: loginRes => {
                                    uni.getUserInfo({
                                        provider: 'apple',
                                        success: userInfoRes => {
                                            console.log('获取用户信息成功'+JSON.stringify(userInfoRes))
                                        }
                                    })
                                },
                                fail: err => {
                                    // console.log('apple登录失败' + JSON.stringify(err))
                                    uni.showToast({
                                        title:'登录失败',
                                        icon:'none'
                                    })
                                }
                            })
                        }
                    },
                    fail: err => {
                        uni.showToast({
                            title:'登录失败',
                            icon:'none'
                        })
                    }
                })
            }

appleInfo

属性类型说明
user String 苹果用户唯一标识符
state String 验证信息状态
email String 用户共享的可选电子邮件
fullName Object 用户共享的可选全名
authorizationCode String 验证数据
identityToken String Web令牌(JWT)
realUserStatus Number 标识用户是否为真实的人 0:当前平台不支持,忽略该值;1:无法确认;2:用户真实性非常高
scope String 返回信息作用域

fullName

属性类型说明
namePrefix String 名字前缀,头衔、敬称
givenName String 名字
middleName String 中间名
familyName String
nameSuffix String 名字后缀,学位、荣誉
nickName String 昵称

授权失败 code 说明

code说明
1000 未知错误
1001 取消授权
1002 返回值无效
1003 请求未处理
1004 授权失败

最后提交云打包或自定义基座打包进行功能测试 !