关于AppStore审核

最近公司两个项目终于陆续通过审核,两个项目从年前就开始提交,前前后后审核用了一个多月,也算是打破了我的一个记录,于是准备记录一下有关 App Store 审核的一些经历及注意事项。

漫长的审核历程

一开始被拒是因为 iPV6 的问题,因为之前公司服务器在阿里云上,iPV6 审核完全没有问题,当时就误认为阿里云已自动帮处理好了 iPV6,当得知现在的服务器也是在阿里云时,就没有在意 iPV6 了。等审核被拒时,去问运维才知道,服务器不支持 iPV6,就只有等运维那边处理。

年后回来运维告诉我 iPV6 好了,我一提交审核,又是 iPV6 的问题。我就很纳闷,iPV6检测的方法我也试过不少,的确是没有问题的啊,问题反馈给运维那边,得出的结论是因为苹果审核使用的是纯iPV6网络环境的原因,又处理了一番后告知我好了,这回提交 iPV6 的问题就过了。之后也因为 iPhoneX 预览图上没有刘海、设置里添加了版本检测这样的小问题被拒了两次,但都好处理,直接删掉 iPhoneX预览图,删除版本检测功能,立马提交,基本上都是隔天就进入审核,得到反馈了。这个 App 还好,主要时间就花在了等运维处理 iPV6 上,iPV6 好了之后两三天就审核通过了。另外一个 App 就麻烦多了。

第二个 App 其实并不算是移动端项目,最开始是做的小程序,但因为需要使用后台定位,小程序做不到,就只能让移动端这边封装一个H5页面上。功能上是相当简单唉,新加了一个手机号+验证码登录的功能、和 H5 交互一下、集成支付宝微信购买支付,成功后回到 H5 ,告之结果就算完成了。一个星期搞定,但是审核就麻烦多了。

记得最开始还是挺严的,那个时候每次审核的时间真的好漫长,这一点在很长的时间里被各种吐槽。之后也许是受不了开发者的各种吐槽,审核提速了好长一段时间,不过有利有弊吧,审核时间缩短了,问题也很多,从今年起感觉又开始比较严起来了,不过也还好,现在审核严,审核速度也很快,能接受吧。

奇葩经历

提交审核的 App 也不少了,也遇到过相当奇葩的被拒,某次,审核人员把提交审核提供的登录账号输错了,明明有提示信息:用户名或者密码错误,居然都不回头对比一下是否用户名密码输入错误。还搞笑的将用户名或者密码错误的提示页面截图给我。唉,让人真想骂人,不过还是只能回复审核人员说你把登录账号输错了,这一次就通过了。

感觉苹果审核人员一直是在死盯着 App 是否符合 App Store 的规范,相反对于 App 内可能存在的 Crash 审核的时候能发现的少之又少,我是没有遇到过。这也可以理解吧,他们审核人员肯定不如我们的测试人员对 App 的业务了解,审核时间也有限。

当然也有过相当快审核通过的记录,某一次提交了一个版本更新,早上十点多提交审核,下午三四点就通过了。也不知道是不是因为我在更新说明里有一项,修复了一个入口很深的 H5 页面里长按图片保存 Crash 的原因。

注意事项

审核的时候难免要与审核人员沟通的时候,最好客气一点。毕竟和你交流的是人,不是机器,没准审核人员心情一好就让你过了呢。

1
2
3
4
尊敬的苹果开发者审核:
  您好,我方已在服务端修复此问题,
  请重新审核;
  诚挚的问候!
1
2
3
4
尊敬的苹果开发者审核:
  您好,对于贵方所提出问题,我方做如下说明: xxxx
  请重新审核;
  诚挚的问候!

当然,某些时候如果你的 App 本来完全符合 App Store 规范,苹果审核人员不知道抽什么风给你了你一个拒绝。 看了拒绝理由确定你的 App 没有任何问题,那么直接回复,态度也得强势。某次,公司 App 添加了一个购买计次套餐和包年套餐的功能,结果提交后被拒,拒绝条款 3.1.1,要求使用应用内购买,相当无语,直接回复:

1
2
3
4
5
6
7
8
9
10
11
尊敬的苹果开发者审核:
  您好,感谢您审查我们的应用程序,您在我们的 App 中使用支付功能的审计过程中可能存在错误的理解。
  
  我公司为用户提供的计次套餐和包年套餐,是线下的实际的服务,用户购买我公司的计次套餐和包年套餐,我公司将线下相应的为该用户提供xx活动的xx服务。
  
  例如,用户购买了计次套餐中的「xxx/10次」,我公司将会为该用户提供10次xx服务;如果用户购买了包年套餐中的「xxx/个人包年」或「xxx/机构包年」,我公司将会为该用户或机构提供该年内用户所需的所有xx活动的xx服务。
  
  而并非是审核条款中 3.1.1 所涉及的订阅、游戏内货币、游戏关卡、优质内容的访问权限或解锁完整版等虚拟物品购买。
  
  请重新审核;
  诚挚的问候!

再次提交审核,两天后审核通过了。

跳转到系统设置界面被拒绝

项目通过 prefs:rootApp-Prefs:root 跳转到系统设置、WiFi设置里的,提交审核后被拒绝,提prefs:rootApp-Prefs:root是私有API,那没办法,只能使用iOS8.0后提供的UIApplicationOpenSettingsURLString, 但这种方式只能跳转到当前App的设置首页。

检测是否存在私有API

如果因为私有API被拒绝,又没有任何印象在哪里加过该私有API的话,可能是引入的某个第三方库里。可以到工程文件夹下,使用命令 grep -lr "xxx" * 来查找到私有API所在的文件或第三方库。例如: 使用命令行来查找工程中是否有私有API: “App-Prefs”

1
grep -lr "prefs:root=" *

加急审核

1
2
尊敬的苹果开发者审核:
  您好,我是线上App "xxx" 的开发人员,我公司线上App从1.0.0版本到现在已经更新过多个版本了,目前核心功能已经基本稳定。现在在2.0.0版本进行了一次界面上较大版本的更新,公司希望在圣诞节来临之际以更完美的界面呈现给用户,圣诞节前若不能上线该版本将严重影响到我们公司的正常运营,所以希望能尽快帮我们审核!

Contact the App Review Team

Contact Information

I would like to: request an expedited app review
Name: xxx
Email: xxx@xxx.com

App Information

App Name: xxx
Apple ID of App: xxxxxxxxxx
Platform: iOS

Description

Select a reason: Time-Sensitive Event
Critical Bug Fix(Bug修复)
Time-Sensitive Event(重大节假日)
Other(其它)

Explanation:
您好,我公司计划在圣诞节时大力推广我司线上App “xxx” V2.0.0版本,各种活动已经准备就绪,若不能在圣诞节上线该版本将严重影响到我公司的正常运营,导致我公司损失巨大,所以再次向审核团队申请加急审核,还望审核团队理解并帮我们加急审核!

We’ve received your request.
We’ll evaluate your request and get back to you shortly. Please note that if you reject your binary in App Store Connect, your app cannot be reviewed and this request will be canceled.
What would you like to do next?

苹果审核时间

需要紧急审核时,同样得关注苹果的审核时间。苹果总部库比提诺是西八区,北京是东八区,比北京晚16小时,夏令时(每年3月第二个星期日至11月第一个星期日, 比正常时间早一小时)相差15小时。苹果总部的上班时间是8:00-17:00。

苹果总部审核时间:
夏令时: 北京时间23:00-8:00
冬令时: 北京时间0:00-9:00。

附录

最后附上审核可能用着得着的几个链接:

域名 iPV6 检测
iTunes Connect 使用指南
App Store 审核指南(官方中文)
申请加急审核


坚持原创技术分享,您的支持将鼓励我继续创作!
----------- 本文结束, 感谢您的阅读 -----------