苹果审核被拒4.8.0条款,快速过审通关指南。

背景

苹果快捷登录是苹果官方用来对抗,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收款无需新增持有人。

# 苹果加急审核是"绿色通道"还是"死亡陷阱"?

# 苹果开发者邮箱,突然收到11.2通知严重么?

# 不想被苹果卡审最好错开这两个提审时间

# 手撕苹果审核4.3是代码问题还是设计问题?

# 有幸和Appstore审核人员进行了一场视频会议特此记录。

知识星球

更多Appstore咨询问题,请关注知识星球。「提供1v1上架指导,帮助开发者解决Appstore的疑难杂症,助力每一位开发者!」。

相关推荐
茶底世界之下5 小时前
阴天海边的蓝船:用 Awaking 把灰蓝调成清亮主角
ios·app·产品
小年糕是糕手6 小时前
【AI】用 AI 做自己的个人网站(上):选模板、写提示词,做出第一版
人工智能·app·网页开发·codex·index·styles·0基础教程
头发还在的女程序员8 小时前
基于 Spring Boot + Vue 3 + uni-app 的灵活用工系统:四端架构与业务流程设计
vue.js·spring boot·uni-app·灵活用工·灵工系统
茶底世界之下1 天前
雨后街口的斑马线:用 Awaking 把颜色让给光与步伐
ios·app·产品
茶底世界之下2 天前
晨雾河岸的旧书摊:用 Awaking 给木色一点暖光
ios·app·产品
Dumbness2 天前
订阅消息弹窗必须在用户点击里调:联调实验室里 timing 和 Mock 支付通知踩的坑
javascript·uni-app
茶底世界之下3 天前
山间站台不必转暖:用 Awaking 留住冷光与红箱
ios·app·产品
码间留白3 天前
uni-app 鸿蒙离线打包:一个改动从源码到真机要穿过几条链
uni-app·鸿蒙·deveco·离线打包·uts插件
多客:duokelijie4 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
码间留白4 天前
鸿蒙端对接 BLE 血压计:从一次握手到读数入库(二)设备篇
物联网·uni-app·鸿蒙·蓝牙ble·血压计