在苹果一次次机审升级的背景下,iOS过审似乎变得越来越难,今天这篇文章总结了笔者这些年对于iOS过审的一些心得,基本上涵盖了大部分的难点,让大家在iOS过审的道路上少走弯路。
接下来就从创建账号到提审各个阶段,拆分几个注意点分享给大家。
1、创建开发者账号
2、应用元数据
3、如何避开“4.3”重复应用和“2.3.1”代码混淆
4、关于第三方支付违规即 “3.1.1”
5、收到“2.1大礼包”如何回复
一、创建开发者账号
创建苹果开发者账号是我们把应用上架到AppStore的第一步, 2018年以前,注册苹果开发者账号还是很简单的,只需要姓名、地址和一张双币信用卡,然后填一下密保问题答案和其他基本信息即可注册成功,而且一般申请完三天内即可成功激活账号。
到了今年四月份的时候,苹果官方对中国区的账号更新了隐私协议,要求必须绑定手机号才可以更新协议,如下图:
对于新账号来说还好办,注册的时候绑定一下手机号就行了,而且现在很多人不止一张卡,很好解决,但是对于老账号就不太好办了,如果不更新这份协议的话,就无法在该账号下提交新App,也无法对该账号进行续费,损失非常大。
而且绑定手机号之前,必须正确回答你注册账号时候填写的密保问题,而很多人是乱填写密保问题的,或者遗忘了密保问题,导致无法绑定手机号。
好在后来有人想到了一个方法,可以绕过密保问题完成绑定手机号,就是找一部系统为iOS 11的手机,在设置里面先退出之前的Apple ID,点击“姓名-电话号码-电子邮件”,然后点击“编辑联系方式”,加入我们的手机号,然后去网页上的苹果开发者后台点击同意协议即可。
不过一部苹果手机只能进行三次此操作,对于拥有账号多的人也造成了不小的麻烦。
然后到了今年七月份的时候,苹果又出新规,要求开发者账号必须开启双重验证才可以继续注册,如下图:
所谓的双重认证就是,我们用某个账号登录一个新的设备时,需要提供密码以及自动显示在设备上的六位验证码,验证时我们可以选择信任此设备,下次登录时就不用再收验证码了,这也增强了苹果账号的安全性。
新规刚出时,开启双重验证是可以在浏览器上进行的,但是后来苹果关闭了在浏览器开启双重验证这个功能,我们只能用Mac或者iPhone来开启。
在中国区,一个主包下有多个分包是常态,所以在同一设备对多个苹果账号开启双重验证的话,很容易将账号之间关联起来,这也是给各开发者的一个难题。
所以我们最好不要在一台设备上激活多个开发者账号,设备的数量也成了一个刚需,大家可以根据实际情况来进行选购或者租赁。
二、应用元数据
苹果App的应用元数据指的是****我们需要在开发者后台所填写的资料,包括但不限于标题、简介、关键词等。如下图:
为了避免与线上应用重复,我们在元数据上也应该注意,比如icon、展示图、关键词、应用简介这些都要保持唯一性,对于过审是有帮助的。
苹果重点监测的词尽量不要使用,除非公司硬性要求,比如彩票这种,还有其他热门应用的品牌词不要使用,会被苹果官方认为会给用户造成误导,从而被拒。
从今年10月3日开始,苹果官方要求开发者必须填写隐私政策网址才能提交应用,这也应该成为大家一个关注的点。很多开发者认为必须要在App里弹窗才行,不过根据苹果官方的说法,App内弹窗并不是硬性的,只要开发者后台有填写网址即可,也有一些开发者没有在App内弹窗就直接过审了。
当然我们也可以在用户刚进入App时,底部高亮隐私政策,让用户可以点击进入隐私政策详情页,这样也是可取的。
高德地图App的隐私授权详情页
三、关于重复应用
重复应用就是我们平时说的“4.3”,现在的开发者几乎是谈4.3色变,因为一旦我们的App被苹果反馈4.3,也就相当于这个App没有过审的希望了。
我们先来看看苹果官方对于4.3的定义:
“请不要为同一个APP创建多个套装ID,如果您的APP针对特定位置、运动队、大学等存在不同版本,请考虑提交单个APP,并提供App内购买项目以提供不同的功能。同时,请避免继续在已有大量类似APP的类别下进行开发;App Store上已经有太多模拟放屁、打嗝声音的APP,以及手电筒和爱经APP。上传大量相似版本APP的开发者会遭到Apple Developer Program的除名。”
苹果给我们应用4.3的反馈可以从三方面来考虑,一是元数据,二是代码,三是应用界面。
应用元数据刚才上面说了,尽量保持唯一性,也就是我们尽量原创,这样降低被认定为重复应用的概率,如果我们的应用是原创原生APP,但是因为我们偷懒,抄袭了其他APP的应用简介而被苹果认定为重复应用,可谓是得不偿失的。
然后就是代码层面,最常见的方法就是混淆,这也是每个做iOS应用过审技术人员的基本功,放在之前可能我们尽力多做代码混淆就可以降低反馈4.3的概率,但是近几个月来,苹果对机器审核进行了升级,如果检测到我们代码混淆比较明显的话,就会给我们2.3.1的反馈,中文翻译如图所示:
对于如何解决2.3.1,就需要我们的技术哥哥经过不断地提审测试,然后试验不同的混淆方法,找到一种比较靠谱的方法来提。
总而言之,现在苹果的机器审核比之前要严格很多,我们的技术手段也要与时俱进来应对审核。
在2017年8月开始,苹果就禁止了应用的****热更功能,所以如果我们应用内还有热更功能的话,很有可能被苹果反馈2.3.1,所以如果我们要更新APP,最好的方法就是迭代更新。
这里要注意的一点就是,苹果官方两个月前有一个更新,在过审后APP的更新说明是无法修改的,所以我们在提审时一定要写好再进行提审操作。
最后就是应用界面层面,如果美术有足够时间的话,可以多做几套UI,降低审核人员在审核几个疑似重复应用时判定为4.3的概率。
四、关于第三方支付
第三方支付违规也是我们常说的“3.1.1”,我们先来看下苹果官方对于3.1.1准则的定义:
根据苹果的规定,如果我们应用要进行虚拟物品购买等行为时,必须要使用苹果官方的支付,不可以使用第三方支付。
不过苹果对于每笔支付都产生比例较高的抽成,导致部分开发者不满,所以就想绕过苹果的官方支付来让用户购买自己的商品。当然这种行为苹果是严令禁止的,因为这是动了他们的利益,所以在非极端情况下,我们还是尽量使用苹果的官方支付来让用户购买,避免因为3.1.1被拒。
解决3.1.1被拒也是有方法的,如果我们是实物商品的话,可以在被拒后在开发者后台向苹果解释,说明用户购买的是实物,由我们进行邮寄派送,不属于虚拟物品,从而通过审核。
如果不属于实物物品的话,就需要我们技术哥哥把代码中相关的第三方支付字眼进行删除或隐藏,从而通过审核。
还有一点要注意的是,如果我们用的分享share SDK里有微信、支付宝支付相关部分的话,也是可能会被判定3.1.1的,所以我们最好把shareSDK做成不带支付版的,毕竟过审才是首位的。
五、2.1大礼包
从今年过年开始,就有很多朋友陆续收到2.1的反馈,也就是我们俗称的“2.1大礼包”,我们先来看下苹果审核反馈2.1大礼包的中英文对照:
对于2.1大礼包,其实不必慌张,我们只需要对里面对应的条款一一进行答复即可,以下为一份回复模板供大家参考:
一般我们回复后等待应用自动进入审核即可,因为元数据被拒是不需要重新进行提审的,大家可以看苹果官方反馈2.1大礼包的最后一句话。
六、最后
从六月末到现在,苹果会在每个月的月末或月初进行一场“大清扫”,也就是单日下架上万个应用,这也令很多开发者提心吊胆,最近一次大清扫是在9月30日,当天下架了1400多个应用,其中超过55%的App更新时间集中在2016年~2017年,所以适当更新我们的应用是有必要的,以免苹果官方把我们的应用当做废弃应用下架,从而对我们造成损失。
苹果的机器审核以及人工审核在不断更新变化,我们对应的方法也要不断升级变化,才能跟得上变化,从而提升我们的过审效率。