前两天看图神发了一篇文章谈谈 Apple 的「审核玄学」,看完之后深以为然,苹果的APP上架审核堪称不可捉摸的玄学秘术。我也曾就这个问题吐槽过:被苹果爸爸完全碾压的通话记录,也记录过因各种问题被拒的经历:之前不幸踩过的一些坑,被AppStore拒了、macOS应用上架被拒。
细数这些年我被苹果审核拒绝的经历,貌似还没有离谱到玄学境地的(这个flag先立起来,等遇到了回来还愿)。虽然我没遇到,但其审核作风就是:“上联:说你行你就行,不行也行。下联:说不行就不行,行也不行。横批:不服不行。“
曾经一个app上架,被苹果以不支持IPv6-only为理由,拒绝了七八次。最后苹果警告,再不修复该问题,等待审核时间会加倍延长。我各种测试在IPv6-only网络环境下,APP网络访问完全没问题,当时在想是不是服务器接口被墙了?苹果审核时访问不了。给苹果拍视频,写邮件解释,换来的还是拒绝。
真实情况是根本不存在不支持IPv6-only的问题,而是苹果审核时未允许地理位置获取,导致某个接口缺少位置参数,结果返回网络连接失败。我和服务端都忽略了这个问题。其实只有这一个接口访问不了,其他接口完全没问题。但是苹果只给我截了这一页的截图,说接口访问失败,不支持IPv6-only。当时只顾着死怼IPv6-only,完全搞错了方向。
曾经还因为APP太简单被拒绝,苹果给的理由是应用过于简单,建议用HTML网页实现。其实APP界面跳转挺多的,只是意见反馈和教程讲解占了大部分功能,苹果认为这两个功能应用性太低,所以将其归类于太简单。然而你却没有权利反驳。
App Store上应用繁多,有好多APP的内容或功能违反了苹果审核条例,比如:盛名列车时刻就存在软件更新功能。但是这些并不是你可以这么做的理由。我曾经因APP被拒,向苹果审核人员抱怨:“有的应用就是这么做的。”结果被直接怼回来了:“如果你认为有应用存在违规,可以举报,但你的应用违反审核条例,不能上架。”
其实苹果也有宽宏大量的时候,我曾上架过一款TCP通讯的APP,需要和Windows客户端配合使用。APP打开只有一个登录界面,需要Windows客户端配合生成登录校验码,才能登录。使用时也需要开启Windows客户端,并输入Windows的IP和端口进行TCP通讯。
上架前曾绞尽脑汁考虑,怎么让苹果使用并审核APP呢?最后我拍了一段500M的视频,详细记录了使用过程,在提交APP的备注里加上视频地址。结果是APP审核通过,顺利上架。那一刻简直想高呼苹果万岁。
好人多吐槽过苹果的审核时间,APP上架会经历这几种状态:准备提交,等待审核,审核中,审核通过或被拒。APP提交后,等待审核这个阶段是最漫长的,平均一周左右。苹果审核太慢也是导致JSPatch等热更新技术兴起的一大原因。今年苹果明令禁止上架APP采用热更新技术,同时审核速度有所提高,运气好的话通常一两天就可以审核完成,运气不好就没准了。
我经历的APP审核绝大多数是在晚上,通常半夜睡觉前会收到进入审核状态的通知,第二天会收到通过或被拒的通知。而且发现周五晚上进入审核状态的几率比较高。感觉macOS应用比iOS应用审核快,我经历过最快的一次macOS应用审核,从APP提交到审核通过只用了2小时16分。
苹果的应用审核机构神秘莫测,鲜为人知;审核手段大道无形,难以捉摸。惹不起,惹不起。
做iOS开发,你不仅惹不起,还躲不起。