背景
苹果快捷登录是苹果官方用来对抗,Google、脸书以及国内微信、QQ、微博相关的快捷入口。
对于iOSer开发者来说,如果App使用了第三方登录,那么就必须要使用Apple提供的登录方式,为用户提供等同于其他第三方同样等级的登录权限。这里着重强调的主要是登录样式。
官方原文,汉化版如下:

UI样式说明
对于苹果登录的入口来说,必须要明确体现出Apple的Logo,同时需要满足和其他平台等份额的样式。
参考图如下:

调用官方按钮
其实苹果官方提供了快捷登录的按钮样式,如果只有一个平台的时候可以直接无缝衔接,极大的降低被Appstore审核被拒的风险。毕竟用苹果自己的东西,还被gank高低有点说不过去
。
1. 导入AuthenticationServices框架
首先,在你的Swift文件中导入AuthenticationServices
框架:
arduino
import AuthenticationServices
2. 创建Apple登录按钮
可以使用ASAuthorizationAppleIDButton
类创建一个苹果登录按钮。以下是创建按钮并添加到视图中的示例:
scss
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 创建苹果登录按钮
let appleIDButton = ASAuthorizationAppleIDButton()
appleIDButton.addTarget(self, action: #selector(handleAppleIDRequest), for: .touchUpInside)
// 设置按钮的Frame或使用Auto Layout进行布局
appleIDButton.frame = CGRect(x: 100, y: 100, width: 200, height: 50) // 根据需要调整位置和大小
view.addSubview(appleIDButton)
}
@objc func handleAppleIDRequest() {
let request = ASAuthorizationAppleIDProvider().createRequest()
request.requestedScopes = [.fullName, .email]
let controller = ASAuthorizationController(authorizationRequests: [request])
controller.delegate = self
controller.presentationContextProvider = self
controller.performRequests()
}
}
3. 实现代理监听
swift
extension ViewController: ASAuthorizationControllerDelegate, ASAuthorizationControllerPresentationContextProviding {
func presentationAnchor(for controller: ASAuthorizationController) -> ASPresentationAnchor {
return self.view.window! // 返回窗口用于显示授权界面
}
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential {
// 登录成功,处理用户信息
let userIdentifier = appleIDCredential.user
let fullName = appleIDCredential.fullName
let email = appleIDCredential.email
// 保存用户信息
// 此处保存用户信息到你的服务器或本地
}
}
func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) {
// 登录过程出错,处理错误
print("Authorization error: \(error.localizedDescription)")
}
}
注意事项
对于使用了Apple登录的产品,必须要明确的账号注销入口,以及对应的注销说明
。不然,依然会被苹果审核打回。在苹果审核看来,用户只完成注册,无法注销是不合理的,并且这种行为严重侵犯了用户的隐私。
参考说明如下:
温馨提示
您即将注销您的账号,注销后将无法再访问与此账号相关的所有信息和服务。
请确保您已经备份了重要数据,并确认您希望继续进行此操作。
如果您有任何疑问或需要帮助,请随时联系我们的客服团队!
遵守规则,方得长治久安
,最后祝大家大吉大利,今晚过审!
相关推荐
# Pingpong和连连的平替,让AppStore收款无需新增持有人。
# 有幸和Appstore审核人员进行了一场视频会议特此记录。
知识星球
更多Appstore咨询问题,请关注知识星球。「提供1v1上架指导,帮助开发者解决Appstore的疑难杂症,助力每一位开发者!」
。