起因是因为 Epic 和 Apple 的官司结案了,突然想起来之前看过的一些材料,就顺手整理了这份杂文,里面的很多内容在时效性上已经比较落后了,不一定与当下完全一致,不过当个奇闻轶事读读也好啦!
一份被忽视的资料
对于外界而言,Apple 的 App Review 团队一直都显得十分神秘,直到 2019 年 CNBC 的一篇名为《Inside Apple’s team that greenlights iPhone apps for the App Store》的文章发布后,大家才对其有了一定的了解。
其中有不少特别有意思的冷知识,例如审核人员会通过 Mac 电脑访问一个叫 App Claim 的 Web 网站,批量审核应用,然后他们通常会在 iPad 上审核应用,即使这是一款 iPhone 应用。(Reviewers “claim” a batch of apps through a web portal on a Mac desktop, called App Claim. They often examine the app on an attached iPad, even if it’s an iPhone app.)
所以,我突然明白了为什么早年间,即使我们提交的是 iPhone 应用,但在拒审邮件的截图附件中,总是能看到 iPad 屏幕截图的身影,现在看来,原来如此~
不过,去年 Epic 和 Apple 的官司 又一次把 App Review 团队带到了大众的视野中。
关于这件事,IGN 上有一篇文章叫做 Epic vs. Apple Shows the Courts Were Not Prepared for the Games Industry's Obsessive Secrecy,里面提到了不少在法庭上辩论的细节,一开始我还好奇媒体是如何知道这些细节的,后来仔细阅读,才发现法庭里的很多内容其实是对外公开的,还好 IGN 的这篇文章里提供了信息的出处,好奇的我怎能错过!
- 美国政府机构在公开网站上的存档 - Epic Games, Inc. v. Apple Inc.,
- 热心网友在 box 上提供的存档 - exhibits,
其中一篇文档成功的吸引到了我,那就是 App Store 审核团队高级总监 Trystan Kosmynka 在 Epic Games vs Apple 诉讼大战时提供的关于 App Store 审核团队的证词文件。
在这些文件中,我们可以发现许多有意思的信息,首先是在开庭当天(May 3 2021 Apple Opening),Apple 提供了一些关于审核团队的数据!
![image.png](https://i.typlog.com/siqi/8294428504_016066.png)
来,我们看看这篇 slide 都讲了啥?
- 在 2020 年,App Store 在全球有 180W 的 App
- 一共有 15W+ 的 App 因为违反隐私规定被拒审。
- 一共有 100W+ 的 App 因为不良或者非法内容被删除或者下架。
- 一共有 200W+ 的 App 因为没有及时更新或者适配新系统而下架。
- 一共有 10W+ 的 App 因为滥用或者不必要地使用用户信息而遭到拒审。
- 一共有 50W+ 的开发者账户因为欺诈和传播非法内容被吊销。
- 一共有 500个审核专家,它们每周平均要审核 100W+ 的 App
说真,第一次看到这份数据的时候,大家还是蛮震惊的,一方面是每年拒审下架的 app 数量之多,一方面是审核团队的人数又是如此之少!
现在想想,我们被拒审好像也不足为奇了.......
![image.png](https://i.typlog.com/siqi/8294428491_301657.png)
上面的数据来自 May 6 2021 里 Trystan Kosmynka 的证词,这个图里我们可以看到 2019 年 16 号左右的 SLA 指数,SLA 是 Apple 内部用来衡量 App 审核效率的一个指标(如果一个 App 从审核开始发起到结束的耗时控制在 1天/2天,那么就认为达标)。
从公开的数据来看,11 月 16 日那一周,1 Day SLA 指标在 89.8%, 2 Day SLA 指标在 96.6%。
而从上面图表的下半部分来看,Apple 似乎对 1 Day SLA 的指标是要求在 50% 以上,而 2 Day SLA 的指标是控制在 90% 以上,而且你要注意到,这里是不区分工作日和周末的哦!
![image.png](https://i.typlog.com/siqi/8294428484_171564.png)
上面的这张图来自 May 7 2021 里 Trystan Kosmynka 的证词,从图里可以看出,应用审核团队的人员分工有很多,常规审核、新发布功能审核等;有涉及到对内容的理解,比如说版权,法律等;涉及到用户利益,比如说付费,IAP,隐私;还有开发者账户等。
关于 App Review 的审核流程
先说说广义上的审核流程,结合 May 7 2021 里 Trystan Kosmynka 的证词,我们可以看到 App Review 的审核流程会有如下 5 个阶段:
![image.png](https://i.typlog.com/siqi/8294428476_995298.png)
但对于开发者而言,第二部分的 Review 环节是大家更关心的部分,因为它就是大家所说的狭义上的审核流程,但是关于这个部分的细节,Apple 似乎从来没有公开过。
不过同样在 May 7 2021 里 Trystan Kosmynka 的证词中,我们终于对这个黑盒系统有了更多的了解,让我们先看一下 App Review Process 的相关 Slide。
![image.png](https://i.typlog.com/siqi/8294428467_514091.png)
所以从这些资料里,我们可以看到 App Store 的审核流程总共分为静态分析(Static Analysis)、动态分析(Dynamic Analysis)、MOZART 以及人工审核(Magellan)。
静态分析,包括了:
- DT App Analyer(DT应用分析器)
- App Similarity(应用相似度)
- Z Strings(Z 字符串)
- App Transparency(应用透明度)
动态分析,包括了:
- App Transparency(应用透明度)
- Mercury
至于这些东西的具体作用,在 Trystan Kosmynka 的证词里都做了一些简单的说明,感兴趣的朋友可以自行查看,我们在这里就不展开了。
除了这些,我们还可以从公开资料中了解到,Apple 还会使用一个名为 Columbus 的审核系统,通过它的介入,让 App 的审核流程变得更加高效。
![image.png](https://i.typlog.com/siqi/8294428453_542242.png)
在这些资料中,还介绍了如何对新旧二进制文件进行审核,以及审核后台的样子。
简单来说,在每次的审核过程中,系统都会把二进制文件的静态检查签名和动态检查签名信息合并成一个 App 特定的版本签名信息,通过对比新旧 App 的版本签名信息,来判断 App 的状态是否符合预期。
![image.png](https://i.typlog.com/siqi/8294428445_469091.png)
![image.png](https://i.typlog.com/siqi/8294428439_433116.png)
关于 App Review Guideline 的解读
在这些公开资料中,最让我涨姿势的还是 Apple 对其 App Review Guideline 的许多解读和背景故事,其中一篇资料是他们内部对于用户隐私数据(地理定位)的讨论,非常有启发性,从这点来说,我认为 Apple 确实是在真正的关心用户体验。
![image.png](https://i.typlog.com/siqi/8294428426_782843.png)
App Review Guideline 是 Apple 审核所有 App 的统一基准,在审核过程中的任何问题都可以在这里得到解释。它的重要性,我想不用多说,大家都是明白的。
在公开的资料中,有一份名为 《11/22/2019 iOS App Review(ERB)》特别值得反复阅读,为什么这么说?
因为这份材料是面向 ERB 的!可能有的读者还不了解 ERB 是什么意思,ERB 的全称是 Executive Review Board,即执行审核委员会,那可能又有读者在问,这个组织是干嘛的呢?
如果应用被拒绝审核,开发者可以向上申诉,申诉的审核委员会(ERB),也是对 App 是否可以上架 App Store 或被拒绝进行最后决定的机构。
如果你仔细阅读这份包含了 57 个 App 的审核资料(如下图所示),结合之前提到的 App Review Guideline,我想肯定会有不少新的启发和感悟。
![image.png](https://i.typlog.com/siqi/8294428362_175766.png)
拒审后的解决方案
拒审对于大多数开发者而言,都不是什么陌生的事情,而且在公开的资料中(May 6, 2021 Trystan Kosmynka),我们可以看到了 2019 年 Nov 16 这一周的相关应用审核数据,其中包含了 iOS,watchOS,tvOS,macOS 和 Testflight 这五个渠道的 Top 10 拒审原因。
![image.png](https://i.typlog.com/siqi/8294428341_064888.png)
![image.png](https://i.typlog.com/siqi/8294428334_819087.png)
![image.png](https://i.typlog.com/siqi/8294428330_051586.png)
![image.png](https://i.typlog.com/siqi/8294428322_860121.png)
![image.png](https://i.typlog.com/siqi/8294428317_556294.png)
除了 Apple 提供的这份数据外,我们还可以在第三方服务商的网站上查到类似的信息,比如 七麦数据 提供的这个统计列表。
![image.png](https://i.typlog.com/siqi/8294428306_153749.png)
总的来看,2.1 Performance: App Completeness, 2.3 Performance: Accurate Metadata,5.1.1 Legal: Data Collection & Stroge ,4.3 Design: Spam 等几个条款是开发者在审核过程中最常被拒的原因。
总结
这篇文章虽然揭开了审核团队的冰山一角,但可能也没什么重量级的干货,就当个奇闻趣事看看吧。
总之,关于应用审核,就不要想什么歪门邪道了,答应我,还是做遵纪守法的好公民吧!