一、苹果发布新版本更新导致的问题
1.1 iOS14
新增是否允许用户跟踪弹窗AppTrackingTransparency
;
解决方案:新版本系统问题,回复客服必须到系统设置页面打开全局允许用户跟踪按钮,这样APP就会显示弹窗是否允许跟踪了,并提供截图;后期的代码处理在 applicationDidBecomeActive.m
方法中添加
if (@available(iOS 14, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
if (status != 3) {
// NSLog(@"未获取授权");
}
}];
}
注:小编亲测在 didFinishLaunchingWithOptions
方法中添加不一定好使,建议还是在上面的方法添加判断。
1.2 苹果发布新特性后,原来的方法就可能过期造成不再可用
解决方案:在苹果发布会后,密接注意苹果发布的新特性,将需要修改的内容全部替换为最新的方法,必要的时候添加苹果系统版本的判断;
- eg1:
iOS16
发布后,在蒲公英测试的时候,下载APP打开时提醒必须打开系统开发者模式才可访问测试APP,用户可前往 【设置->隐私与安全性->开发者模式】 打开开发者模式开关,重启手机后即可访问。 - eg2:
iOS15
发布后,初始化UITableView
用UITableViewStylePlain
样式,发现sectionHeader
增高了22px
,原因是iOS15
的UITableView
新增了一条新属性:sectionHeaderTopPadding
, 默认会给每一个sectionHeader
增加一个高度。
// 解决方案:如果不想要这个高度,就在代码里面添加以下设置
if (@available(iOS 15.0, *)){
self.tableView.sectionHeaderTopPadding = 0;
}
- eg3:
iOS14
发布后 不允许使用KVC访问众多私有属性
// iOS14不允许以KVC形式访问 UIPageControl的pageImage、_currentPageImage等等
// 解决方案:根据系统版本添加新判断
if (@available(iOS 14.0,*)) {
pageControl.preferredIndicatorImage = [self imageWithColor:[UIColor whiteColor]];
pageControl.currentPageIndicatorTintColor = [UIColor redColor];
pageControl.pageIndicatorTintColor = [UIColor blueColor];
}else{
[pageControl setValue:[UIImage imageNamed:@"pageControllDot"]forKeyPath:@"pageImage"];
[pageControl setValue:[UIImage imageNamed:@"pageControllCurrent"]forKeyPath:@"currentPageImage"];
}
二、隐私政策合规导致的问题
2.1 测试账号问题:提供给苹果客服的测试账号无法进行内购被拒
解决方案:更换可以正常内购使用的普通账号,提供给苹果客服的测试账号权限一定要掌握好,必须是干净的账号,数据内容无异常的账号;
2.2 游客登录问题:一直拖了很久没添加该功能,回复客服功能都是定制化的功能需要绑定用户(打电话沟通了很久,台湾的客服),这次审核比较严格,必要添加该功能。
解决方案:游客利用手机标识符进行默认的注册登录APP生成token访问APP(至于游客的数据是否要和登录后的正式账号进行绑定,取决于需求);还有游客的方式也可以根据场景选择:1.在登录页面放一个游客登录的按钮 2.打开APP时直接进行游客登录,进入到某些需要和用户绑定的功能时再提醒用户登录;
2.3 第三方登录问题:苹果要求
解决方案:加了微信登录等第三方登录,就必须加苹果登录,并且微信登录后是否绑定手机号必须是可选。
2.4 数据访问问题:IP限制
问题背景:苹果客服反应打开APP后全部白屏,由于审核人员可能是美国地区的,也有可能是中国大陆的,后来了解到为了防止服务器被攻击(之前有过国外的IP频繁请求接口的先例),技术后台限制了IP只能是中国大陆访问
解决方案:在上线前将IP访问限制去掉,上线后再做IP访问限制
2.5 资质问题:新闻类别的需要版权资质
解决方案:第三方新闻类别的数据页面访问必须提供快照页面,显示并注明文章来源,最好是有网站新闻icp备案,在访问第三方网站时最好添加提醒说明文案 【eg.您正在访问的是第三方网站,XX不对该网站的内容以及真实性负责,请注意信息及财产安全】
2.6 内购限制问题:邀请用户参加活动送会员
问题背景:苹果不允许除内购以外的任何送会员方式
处理方案:把所有的送会员方式改为送体验权限;针对这种内购购买的,参照爱奇艺、优酷等建议可以和PC端打通,在PC端扫码购买,然后在APP上使用;避开内购。
2.7 XX世界杯竞猜活动:涉嫌违规
问题背景:苹果回复在世界杯举办期间,世界杯竞猜送会员活动涉嫌赌博,禁止上架。我们关闭了部分活动入口,引起了苹果审核的反感,苹果那边找到了所有的入口,被拒,回复了客服的问题后,苹果进行了延迟审核,再次审核后更加严格;
处理方案:1.上线前关闭所有入口,后台加开关控制【注:如果苹果审核审查到该种行为,会进行警告,严重的可能回下架APP,如果是因为违规问题下架的APP,该账号下的APP审核也会收到影响,甚至永久封禁该账号】;2.直接下架该功能;
2.8 集成第三方SDK链接:里面有第三方购买
处理方案:接入了第三方的课程类链接,里面有第三方微信支付宝的购买课程,被拒,建议上线前关闭所有入口,后台加开关控制访问权限后者直接替换访问链接。
2.9 一键登录失败问题:一键登录依赖国内三大运营商流量服务
解决方案:如果登录失败,可能因为网络信号原因,可切换WIFI或者4G重试,也可以切换登录账号,并且请确保在设置中设置了允许APP使用蜂窝数据和WLAN;一键登录使用的流量服务必须是中国联通,中国移动或者中国电信的运营商,国外暂不支持一键登录
2.10 账号注销功能:并且必须容易进行账号注销,
问题背景:
- 2022 年 6 月 30 日起,苹果发文所有支持创建帐户的应用程序都需要具备删除帐户的功能。在新规中也表示:应用程序必须提供完全删除用户账户(注销账户)的选项,而不仅仅是禁用或退出登录,苹果要求所有与该帐户相关的个人数据必须被删除;
- 相关部门发文为了隐私政策合规必须添加账号注销功能;
解决方案:添加账号注销功能,解释说明账号注销的不可逆性和二次确认,说明注销后要清除所有的账号信息和访问记录。
2.11 隐私政策合规细则问题:添加第三方SDK目录列表
解决方案:为了用户的信息安全,在APP隐私政策中添加第三方SDK目录,介绍SDK名称,使用目的,收集数据类型,SDK官网链接