方法与常见问题

检测如何进行,结果能够证明什么、不能证明什么,以及我们最常被问到的问题。

Apple Censorship 是什么?

Apple Censorship 是一个追踪并分析苹果 App Store 应用审查情况的项目。我们持续监测各地 App Store 中应用的可获取状况,记录哪些应用受到限制或被下架,以此呈现苹果在全球范围内的内容管理做法。更多说明见为何重要,或联系我们

我可以建议你们监测某个应用吗?

可以。在本站按名称或关键词搜索一个应用,我们的系统就会检测它在各个 App Store 中的可获取情况。你的参与能帮助我们扩大监测范围,并提高数据的准确度。

如果我发现网站上有错误,应该怎么做?

如果你发现我们的数据有错误或前后矛盾之处,请通过网站上的联系方式告知我们。我们重视你的反馈,会尽快核查并更正。

这里没有你想问的问题?

联系我们,我们会尽快回复。

这些数据可以导出吗?

没有「一键下载文件」的按钮——本页早先的版本曾如此承诺,而这次重建并没有这个按钮。取而代之的是一套有文档的 JSON API,它能做的比一份表格更多:

  • /api/apps/{appStoreId}/status——某个应用在每个商店的最新检测结果,带日期。它允许跨源调用,因此在脚本里或直接在浏览器控制台里都能用。
  • /api/explore——检索页背后的引擎:按商店、类别、价格、受众规模和可获取情况筛选我们收录的全部应用,并取回相应的计数。
  • /rss——新公布的下架记录。

各字段的定义、以及每个数字多久变动一次,都写在 llms.txt 里。我们不公开底层检测读数的整体导出——那有数千万条——如果你的研究需要,请联系我们

应用可获取性检测是怎么进行的?

按名称搜索应用即可:在首页,或在任意页面顶部的搜索按钮中。搜索建议来自苹果自己的索引,而不只是我们已经收录的范围,因此你也可以询问一个我们从未见过的应用。

在应用页面上,每个商店那一行都有一个「检测」按钮;如果我们对该应用完全没有读数,页面上还会有一个按钮,一次取回最初的四个商店:中国大陆、美国、印度和俄罗斯。检测是在你的浏览器里直接向苹果发出的,这一点有两重意义——苹果按 IP 地址限制请求频率,因此消耗的是你自己的额度而不是我们的;而且答案描述的是苹果向你的连接提供了什么,而不是向某个数据中心提供了什么。如果你的连接根本无法到达苹果——这恰恰是最值得关注的情形——我们会通过爬虫自有的住宅代理代你询问。

每一次读数都会保留,并连同精确到秒的时间出现在该应用的表格中。爬虫本身也在持续检测;网站顶部的滚动条就是它的实时记录。持续 24 小时及以下的缺失,不计入下架记录页面上的下架——因为几小时内又出现的应用,通常是我们的读数出了问题,而不是苹果做了什么——但它仍会出现在该应用自己的表格里。

App Store 中「检测到的变化」(以及应用的状态)是什么意思?

在应用页面上,每个商店显示为可获取无法获取未检测;如果我们目睹了状态的变化,旁边还会有日期。这三者是读数,不是判决:无法获取的意思是,在最近一次检测时苹果不会在那里提供它,而它在别处仍然可以获取。

真正重要的区分,是「我们目睹它离开」与「我们从未在那里见过它」。监测自 2019 年 2 月开始,因此在那之前被下架的应用,看起来与从未上架的应用完全一样——我们记录为无法获取的应用中,约有五分之四从未被我们目睹在那个商店可获取过。凡是我们确实目睹其离开的,应用页面会给出日期,而商店页面也会把这类离开与其余情况分开计数。

下架记录就是这些离开发生时的记录。一个应用在同一天从多个商店被撤下,只列一次而不是十几次;持续不到一天的变化则不计入,理由同上。

我怎样才能真正确认一个应用是否被审查了?

无法获取这件事本身是被测量出来的——在任何一个应用的页面上,你都能逐个商店、带着日期看到它。需要进一步查证的是原因,以下几种方法可以把范围缩小:

  • 查看该应用在本站(而不是在 App Store)的页面,可以很快看出它在哪些 App Store 可获取、哪些不可获取。一个只在某一个国家/地区可获取的应用,很可能本来就只为那里上架。有些应用则可能只在共用同一种语言的 App Store(例如西班牙语国家)中可获取。
  • 把它与同一商店里的同类应用作比较。如果某一类应用在某个国家/地区大面积缺失——我们在中国大陆检测的 VPN 应用有 78% 无法获取,而我们在那里检测的全部应用中这一比例为 28%——那么「某一个开发者的私下决定」很难解释这种形态。应用页面现在会替你做这个比较,并把两个数字都列出来。
  • 看它是否与其他应用在同一天离开那个商店。一个开发者的决定就是一个决定;十几个互不相关的开发者在同一天从同一个国家/地区撤出,就不是巧合。就我们的全部记录来看,一个应用离开某个商店时,同一天离开的其他应用平均不到两个,因此成批离开会很显眼——应用页面会把这个数目算出来。
  • 在网上查找「外部」信息。媒体报道、新闻稿或社交媒体上的说法,都可能佐证一个应用无法获取的情况。
  • 归根结底,通常只有联系开发者才能确认原因。这件事你未必会去做,但我们会定期联系那些我们怀疑被苹果审查的应用的开发者。这样的联系有其价值,因为苹果常常在不通知开发者的情况下把应用从 App Store 下架。但这也是整条链条中最脆弱的一环:开发者可能受到压力而不能说,也可能知道的并不比我们多。

凡是这类查证能得出可以引用的答案,我们就记录下来,并显示在该应用的页面上。凡是得不出——多数情况如此,原因见下一个问题——页面就把各种可能的原因与上述证据逐一对照,并把推理过程写出来,而不是去猜一个原因,也不是干脆什么都不说。

如果一个应用在一个或多个 App Store 中无法获取,是否意味着它被苹果审查了?

是。这正是本项目的主张,而且值得把这个主张说得准确些——因为它针对的是苹果的这套系统,而不是对某一个应用的猜测。

苹果运营着 175 个彼此独立的 App Store,并按账单地址把你分配到其中恰好一个。在 iPhone 上,没有别的途径可以安装应用。所以一个应用从你所在的商店消失,并不只是「众多商店之一少了它」——在苹果允许进入你自己这台设备的唯一路径上,它是拿不到的。一套在每个应用上都装有「按国家/地区开关」的分发系统,就是一套审查系统,无论按下开关的人出于什么理由。这就是我们所说的苹果审查,也是这个答案不再以「不是」开头的原因。完整的论证见为何重要

我们通常无法确定告诉你的,是原因。对任何单一应用在任何单一商店里,有五种可能:

  • 政府或法院要求下架,苹果照办。
  • 与「付费」相关的当地规定——博彩许可、金融监管、税务。这些苹果都可以通过拒绝付款而不是拒绝下载来遵守,这也正是我们唯一愿意接受的限制形式,并且它根本触及不到免费应用。我们收录的应用中约有 95% 是免费的。
  • 苹果在无人要求的情况下自行适用了某条规则:它自己的审核指南,或它自己对当地法律的理解——后者不仅涉及内容,也包括分发许可。2021 年,它就因为缺少这样一份许可,把一个免费的圣经应用挡在了中国大陆之外。
  • 开发者自己没有上架——可能出于自愿,可能听取了自己的法律意见,也可能因为苹果的指南要求这类应用只能限于特定国家/地区。
  • 出了故障:更新被拒、证书过期、授权或支付出现问题,或者只是一个没人注意到的差错。

仅凭检测读数,这五种是分辨不出来的。苹果的 App Store Connect 允许开发者随时取消勾选一个国家/地区,不需要新的版本,也不留下任何公开痕迹;我们的爬虫随后看到的,与一次政府要求的下架一模一样。因此本站没有任何页面声称知道到底是哪一种。每个应用的页面所做的,是把这五种可能与该应用在该商店里已有的证据逐一权衡——同类应用在那里缺失的频率是否远高于其他应用,它是否与一批应用在同一天离开,是否有人为它付费,它消失了多久——并把推理写在每一项下面,好让你在保留这些计数的同时,也可以不同意我们的判断。凡有据可查的原因,我们就写明并注明来源。我们没有的,是这五种原因在整个 App Store 中各占多少的测量结果;我们也不会就此发布一个猜测。

我们无法做得更好,原因在于苹果不说。它的App Store 透明度报告给出了因政府要求而下架的应用数量——2025 年它下架的 166,899 个应用中有 2,045 个——随报告一同发布的补充数据文件,还逐一列出了这 2,045 次背后的政府机构和具体法条。但它不列出任何一个应用的名字。答案的两半就在同一次发布里,唯独把它们对起来这件事,苹果不做。苹果过去还会公布它收到多少下架请求、拒绝了多少,而这是区分「配合」与「主动」的唯一办法;这一组数据在 2021 年中断,而报告的其他部分都照旧。至于那些被告知了理由的开发者,理由是私下给的,是否公开则由他们自己决定。

所以对本站诚实的读法是:无法获取是被测量出来的,原因则通常不在记录之中。前一半是我们的工作。后一半,要由苹果来补。

关于具体机制:App Store Monitor 在所有商店中为应用建立索引,当我们在至少一个其他商店仍能取得某个应用时,才把它在某个商店标记为无法获取。持续 24 小时及以下的无法获取,不计入「检测到的变化」页面上的下架,以免短暂的技术故障变成误报——但每一次检测读数仍会出现在该应用页面的检测表格中。

App Store Monitor 是什么,它是怎么运作的?

App Store Monitor(ASM)是一个网络爬虫,它为目前设有 App Store 的所有国家和地区中可获取的应用建立索引,并逐个核查这些应用在每个 App Store 中的可获取情况。

如果一个应用在至少一个 App Store 中可以获取,却在一个或多个其他 App Store 中无法获取,监测系统就会把它在那些商店标记为无法获取。就这么简单!