3月最后一周,App Store上演了一出荒诞剧:开发者Dhruv Amin试图修复问题,结果应用直接被下架。
苹果这次盯上的不是某个bug,而是一整类正在爆发的新工具——vibe coding(氛围编程)应用。
《The Information》上周报道,苹果以违反App审核指南第2.5.2条为由,将应用「Anything」从商店移除。这是继Replit、Vibecode等应用被阻断更新后,苹果对这类工具的第二次出手。两次行动间隔不到72小时。
2.5.2条款:苹果埋了12年的地雷
苹果在声明中指向的条款,核心就一句话:应用必须是「自包含」的,不能下载、安装或执行会改变自身功能的代码。
这条规则写进App审核指南至少有12年。2013年它针对的是Flash和Java插件,2025年却成了vibe coding应用的绞索。
矛盾在于vibe coding的工作流本身。用户用自然语言描述需求,AI生成代码并即时运行——这个过程必然涉及「下载代码并执行」。按照2.5.2的字面意思,几乎所有vibe coding应用都在踩线。
苹果给9to5Mac的声明留了口子:教育类应用可以有限度地下载代码,前提是「源代码完全可见可编辑」。但「Anything」显然没拿到这张豁免牌。
Dhruv Amin的「合规」尝试,成了催命符
事件的时间线充满讽刺。
3月初《The Information》首次报道苹果阻断Replit等应用更新后,Amin主动寻求变通。他的方案是:让用户在浏览器里预览AI生成的应用,而非在「Anything」内部运行。
这个改动的逻辑很清晰——如果代码在Safari里跑,就不算「Anything」下载执行代码,2.5.2条似乎就绕过去了。
苹果拒绝了这次更新提交,然后直接把应用下架。
Amin向《The Information》确认了这一过程。苹果至今未回应为何针对「Anything」单独行动,也未解释为何「浏览器预览」方案不被接受。
开发者许可证里的另一把刀
除了2.5.2条,苹果还援引了开发者许可协议第3.3.1(B)条。
这条规定允许应用下载解释型代码,但附加了致命限制:代码不能改变应用的「主要目的」,不能提供与「预期和宣传目的不一致」的功能。
vibe coding应用的悖论就在这里。用户今天用它生成一个记账工具,明天生成一个天气小组件——每一次生成都可能被视为「改变主要目的」。平台方和用户理解的「目的」,根本不是一回事。
苹果在声明中强调,问题「不是vibe coding应用本身」,而是违规应用。但这个区分在实际操作中几乎无法执行。审核员面对一个能生成任意代码的工具,如何判断哪次生成算「改变目的」、哪次不算?
Replit们的困境:更新被卡,进退两难
比「Anything」更早受到冲击的是Replit和Vibecode。
这两家应用的更新提交被苹果阻断,理由同样是2.5.2条。与「Anything」被直接下架不同,它们目前仍留在商店,但无法推送新版本。
这种「冻结」状态对迭代极快的AI工具更致命。vibe coding赛道每周都有新模型、新交互方式,卡一个版本就意味着技术债务快速累积。
Replit的应对策略尚未公开。Vibecode的创始人曾在社交媒体暗示正在与苹果沟通,但拒绝透露细节。
一个未被证实的行业猜测是:苹果可能要求这些应用转为「纯代码生成」模式——AI只输出代码,不执行。但这相当于阉割了vibe coding的核心体验:即时预览、边聊边跑。
苹果的算盘:不是第一次,也不会是最后一次
这不是苹果第一次用旧规则打击新形态应用。
2010年,苹果以类似理由禁止Flash;2017年,微信打赏功能被强制下线,理由是「绕过IAP」;2020年,云游戏应用被要求每个游戏单独上架。每一次争议的核心都相同:苹果对「应用边界」的定义权。
vibe coding的特殊性在于,它模糊了两个边界:开发工具与运行环境的边界,以及应用与应用的边界。当AI生成的代码可以即时执行,「Anything」既是IDE(集成开发环境)又是操作系统——至少在用户感知里是这样。
苹果不能容忍的或许不是代码执行本身,而是这种身份的模糊。App Store的商业模式建立在「每个应用有明确功能、单独审核、独立计费」的基础上。vibe coding应用本质上是一个「应用生成器」,它把审核权部分转移给了AI和用户。
《The Information》提到一个细节:苹果在阻断Replit更新时,审核团队内部似乎存在分歧。有审核员认为应该允许教育用途的变通,但最终决定权在更高层。这个细节暗示,2.5.2条的执行尺度并非铁板一块,但开发者无法预测哪次提交会触发红线。
赛道热度与监管滞后的裂缝
vibe coding概念的爆发几乎是一夜之间。
2024年底,Andrej Karpathy的一条推文让这个术语出圈。2025年第一季度,相关应用融资额超过3亿美元,Replit估值突破10亿美元。资本涌入的速度远超平台规则的更新速度。
苹果的反应模式很典型:先按兵不动,等生态成型后突然收紧。这种「养肥再杀」的策略在小程序、云游戏等领域都出现过。对开发者而言,最痛苦的不是规则严格,而是规则模糊且执行随机。
Dhruv Amin的遭遇提供了一个典型案例:主动寻求合规,反而加速了下架。这种负向激励会让整个赛道倾向于「先上线、再观望」,最终积累更大的政策风险。
目前仍留在商店的vibe coding应用,包括Cursor、Bolt等,尚未受到波及。它们的共同点是采用了「云端执行」架构——代码在远程服务器运行,本地只显示结果。这种架构是否触发2.5.2条,取决于苹果如何解释「执行」的定义。
但「Anything」的浏览器预览方案也被拒,说明「在哪里执行」可能不是关键。苹果真正在意的,或许是「谁对执行的内容负责」。云端架构把责任推给了开发者服务器,浏览器预览则把责任推给了Safari——两种方案都试图转移风险,但苹果似乎只接受「风险不存在」的答案。
「Anything」下架后,Amin在社交媒体发了一条简短动态:「正在探索下一步。」没有抱怨,没有抗议。这种克制在开发者社区很常见——与平台对抗的成本太高,大多数人选择沉默重建。
但沉默不等于遗忘。每一次模糊执法都在积累记忆,等待下一次规则重谈判或监管介入时兑现。
当AI让「人人能编程」成为现实,平台该用20年前的规则框架来约束它,还是该重新定义「应用」本身?
热门跟贴