苹果官方App误打包Claude.md:当Vibe Coding撞上生产事故
5月1日,苹果推送了Apple Support应用v5.13版本更新。这本该是一次普通的售后功能迭代,直到MacRumors分析师Aaron Perris在反编译时发现了不对劲——
App包里躺着一个Claude.md文件。
熟悉AI编程的人立刻懂了:Claude.md是Claude Code(Anthropic的终端编程智能体)的项目级配置文件,用来告诉AI这个项目是什么、怎么构建、要遵循哪些规范、绝对不能碰哪些雷区。
它相当于给AI写了一份”项目说明书”。
它绝对不应该出现在生产环境里。
事故发生后,苹果在24小时内紧急撤回该版本并重新推送,但泄露的内容已经被完整解析并公之于众。
泄露的Claude.md虽然只是配置文件,但信息量极大。
🏗️ 双后端架构
苹果设计了一套AI与人类无缝切换的客服系统:
- Juno AI
:负责自动应答、问题诊断、流程引导 - Live Agents
:真人客服团队,处理复杂或升级场景 - Protocol协议层
:两者通过统一协议层无缝切换
最精妙也最令人不安的设计是:上层业务代码根本不知道某条消息是AI回复的还是人类回复的。
这意味着整个消息处理流程是统一的,切换对上层透明。
🎭 三角色消息系统
在Apple Support的聊天架构中,存在三种身份:
|
|
|
|---|---|
| client |
|
| agent |
|
| assistant |
|
三种身份的消息走同一套处理流程,没有给用户任何提示——你无法分辨对面是人在回复还是机器在回复。
🧩 SAComponents模块
另一份泄露的SAComponents文件倒是没什么猛料,就是一套纯UI组件库,带DocC文档。标准的工程化产物,没有业务逻辑。
但它证实了一件事:AI在苹果内部已经渗透到UI层面。
其实,苹果用Claude写代码这件事,圈内早有传闻。
三个月前,彭博社知名苹果记者Mark Gurman就明确说过:
Apple runs on Anthropic at this point.
Gurman特别提到,苹果是在自家服务器上跑定制版Claude模型,内部代码、文档、token全都不出苹果的基础设施。
这与苹果一贯的隐私立场完全自洽:用AI可以,但数据不能出去。
还有一件事值得注意:苹果已经和谷歌达成合作,Gemini将取代旧版Siri。但在内部开发工具这件事上,苹果选的是Claude,而不是Gemini。
为什么?
Claude Code在代码理解和工程上下文方面的表现,目前公认优于竞品。对于苹果这样体量的工程团队来说,Claude是生产力工具的首选。
当然,一位自称前苹果员工的HackerNews用户站出来说:苹果内部有数百个隔离团队,某些团队用Claude不代表全公司都在Vibe Coding。
事故发生后,开发者社区吵成一团。
✅ 支持提交的一方认为
-
Claude.md就是项目文档,应该提交到代码仓库,团队共享 -
新成员加入时可以直接使用同一套AI上下文 -
不提交的话,每个人的AI助手对项目理解不一致,代码风格容易分裂
❌ 反对提交的一方认为
-
它更像是IDE配置文件,应该放进 .gitignore,各用各的 -
Claude.md可能包含敏感信息(API密钥、内部架构细节) -
进了版本控制,就等于进了CI/CD流水线,一不小心就打包进生产环境
但真正尴尬的不是”该不该提交”,而是”提交了之后怎么又进了发布包”。
这才是这次事件最核心的问题。
🔴 Vibe Coding的代价
“Vibe Coding”这个词最近在硅谷很火——用AI写代码,你只需要描述需求,AI负责实现,你只需要”感受”(vibe)一下代码对不对。
听起来很美,但苹果的事故暴露了Vibe Coding的致命弱点:
- AI经常选择性无视指示
:即使反复强调”不要打包Claude.md”,Claude Code依然可能忽略 - 开发者信任过度
:当AI帮你完成了80%的工作,你可能会忽略那20%的关键检查 - 审查流程没有跟上
:传统的代码审查是看人写的代码,但AI生成的代码需要不同的审查方式
一条HackerNews高赞评论总结了这件事的本质:
真正的问题不是Apple用了Claude,而是Apple对Claude过于信任。所有人都在用AI加速开发,但这件事应该被代码审查拦住。
📊 数据说明一切
一项针对12万开发者的调查显示:
|
|
|
|---|---|
|
|
92.6% |
|
|
76% |
|
|
43% |
苹果用Claude写代码,不过是整个行业的缩影。
当AI成为”第一作者”,人类变成”编辑”,代码审查的逻辑需要彻底改变。
传统审查 vs AI时代审查
|
|
|
|
|---|---|---|
| 审查对象 |
|
|
| 关注点 |
|
|
| 审查方式 |
|
|
| 风险点 |
|
|
需要新增的审查项
- AI配置文件检查
: Claude.md、.cursorrules等文件不能进入生产包 - AI生成代码标记
:需要标识哪些代码是AI生成的,方便追溯 - 敏感信息扫描
:AI可能把内部信息写入日志或配置文件 - 行为一致性验证
:AI写的代码在不同环境下行为是否一致
细心的网友发现,这次事故和之前的Claude Code源码泄露事件如出一辙——当时Claude Code的source map被打包进了发布版。
会不会这两次事故的罪魁祸首,都是Claude Code自己?
这个猜测并非空穴来风。Claude Code确实有过”选择性无视.gitignore”和”打包多余文件”的已知问题。
如果是这样,那Anthropic可能需要在产品层面解决这些问题,而不是让开发者自己兜底。
苹果的某位工程师正在经历职业生涯最糟糕的一天。
但正如一位开发者所说:
Anthropic的销售团队,正在经历最好的一天。
连苹果都在用Claude Code构建生产级应用,这本身就是对Anthropic最好的背书。
💬 互动话题
-
你用AI辅助写代码吗?遇到过什么坑? -
你认为Claude.md应该提交到Git仓库 -
AI生成的代码,应该如何审查?
欢迎在评论区留言讨论!👇
夜雨聆风