苹果审核的这些坑,我踩过现在写出来让你避坑

苹果审核一直是APP上架时要面对的一座大山,很多iOSer同样也有过这么一段痛苦的经历。


在App上架苹果应用商店的过程中,相信大多数iOSer往往都有过这样的经历:辛苦开发出来的产品,测试验收也通过了,满怀期待的提交App给苹果审核,结果经常被苹果各种理由拒之门外,苦不堪言。

苹果为了给开发者和用户创造一个良性、公平、健康、安全的应用商店环境,同时也为保障苹果自身利益,因此制定了一系列的应用商店条款《App Store Review Guidelines》,所有开发者必须遵循这些条款,才能获得App上架的资格。不可否认,App审核在一定程度上保证了应用商店中的App品质,然而iOS提审对众多开发者来说,往往会有谈虎色变的感觉!

确实如此,很多手游同样也有过这么一段痛苦的经历,早在2015年之前,苹果审核一直是手游上架时要面对的一座大山,无论是首个版本还是更新版本的提审,都是一段忐忑甚至是悲壮的旅程,经常性被拒,无比煎熬。

大家都知道,过去苹果响应App提审(提交完成从正在等待审核“Waiting for Review”变成正在审核 “In Review”,如下图)等待时间是非常漫长的,少则几天,多则十几天,审核被拒就意味着手游版本要整改、测试验收和重新提审排队,将大大延长版本过审时间,从而影响了上架的节奏和运营活动的计划,甚至是手游的流水!


为了提高手游产品的苹果审核通过率,公司成立了苹果审核的测试团队,将苹果审核条款以及各种被拒理由整理成可测试的验收条目,并对验收项进行可自动化分析,开发出ipa包、图片/视频、应用描述等自动化扫描工具,力求高效地暴露App的提审风险,全面保障App的提审通过率。经过近2年的运行,iOS审核通过率从最早的平均35%提升到目前的90%+,本篇文章将会与大家分享预审项目的一些真实案例。

iOS提审需面对的压力

上节我们已经大概了解了开发者们在提审过程中遇到的重大阻力,为什么过审会是如此的艰难?不外乎如此:

1. 更细致、更苛刻的审核条款

2016年6月,苹果在官网更新了审核条款《App Store Review Guidelines》,通篇6000多英文单词,分5大章节,一共100+条款,涉及安全、业务、性能、设计和法律领域,让人眼花缭乱,开发者们如没有系统的、全面的把控,稍有不慎便会触犯其中条款,一旦触犯便有可能被拒。

2. 苹果半自动半人工的审核机制

苹果审核是采用半自动半人工的审核方式,不同审核人员对条款理解程度和执法力度往往会因人而异,所以时常会出现开发者们遇到的如下情况:上次提审通过,但下一版本更新时便被拒了,审核人员出现遗漏或者审核人员发生了变更。总之,不同时间段,审核结果可能会不一样,这些人为因素造成的结果,对开发者来说,容易产生困扰和不解。

3. APP数量激增,审核任务巨大,审核人力不足

据苹果官方统计,应用商店App的数量当前已经有200万+,平均每周有上万款新App上线,5万+款App更新(每个App存在重复审核的可能)。对于苹果审核团队来说,要处理如此巨大的审核任务(具体数据,笔者无从考据),难免会出现精力不足, App功能的访问路径稍微深一点、实现逻辑稍微复杂一点,文字描述稍微有含糊,便有可能会被拒绝。有开发者曾吐槽过,提交的一款娱乐类应用,被拒的原因是:苹果觉得应用并不具有娱乐性,让人举手无措!

我们产品踩到的坑

每个App上架苹果应用商店时,需要提交给苹果进行审核的内容,基本上可以归类为以下几方面:

1. App信息

App信息(名称/副标题、类型等)
评级信息(年龄、暴力、赌博、色情等内容程度)
定价相关内购信息(IAP配置)
审核信息(体验账号)

2. ipa包(ipa规格属性、App内容)

ipa包规格属性(检查项很多,篇幅受限,不一一罗列了):

私有API和Non-public API的调用
64位支持
Info.plist键值的设置
第三方违规SDK的使用
Icon资源
…..

App内容:(检查项很多,篇幅受限,不一一罗列了)

违规字样:测试字样、苹果产品英文拼写错误、色情/暴力/诽谤言论等
抽奖活动内容
IAP充值功能
QQ会员专属福利
未开放的功能占位符
……

3. 宣传素材(预览图片、视频、Large App Icon)

图片

图片内容
图片规格属性

视频

视频内容
视频规格属性

Large App Icon

Icon内容
Icon规格属性

4. 元数据(应用描述等)

苹果审核也是围绕以上四方面来开展的,如果提审App出现被拒,无非就是如上某些内容不满足苹果要求导致。接下来一起看看腾讯手游过去所踩过的一些坑吧

4.1 App信息被拒的案例

【案例1】游戏A的副标题包含明显关键词和宣传活动描述:



【案例2】游戏B提交的IAP档位,审核人员无法在游戏内找到对应的档位:



【案例3】游戏C提交的体验账号,密码错误,审核人员无法通过该账号体验游戏:

4.2 ipa被拒的案例

【案例4】游戏D因存在调用私有API或non-public API导致被拒:



【案例5】游戏E因使用违规的第三方SDK导致被拒:



【案例6】游戏F因使用后台服务(位置)但未在info.plist进行声明,导致被拒:

【案例7】游戏G弹出的公告中,出现测试、删档等字眼(苹果认为是测试版本)导致被拒:



【案例8】游戏H弹出的公告中,出现错误的苹果产品的英文拼写”IOS“(正确的格式:iOS),导致被拒:

【案例9】游戏I,IAP支付功能异常,导致被拒。

4.3 宣传素材被拒的案例

【案例10】游戏J,提交的图片/视频中有“萝莉”“御姐”等低俗词语,导致被拒。



【案例11】游戏K,提交的图片/视频不能体现游戏真实内容(只显示了游戏角色,不能反应游戏真实场景),导致被拒。



【案例12】游戏L,提交的图片/视频内容是在安卓机上截取的,导致被拒。

通过上面的被拒案例,大致可以感受到,提审被拒的原因是五花八门的,稍有不慎便会被拒,对过往一段时间的提审数据,进行归类,详情如下:



现在我们自己写了个iOS代码混淆工具,每次上架前都混淆下源码,上包通过率目前达到了85%


本文本人首发www.zfjobslib.com。 【iOS代码混淆工具】版本:ZFJObsLib 1.7.2

你可能感兴趣的:(苹果审核的这些坑,我踩过现在写出来让你避坑)