🛠️ 连苹果也会翻车?一次罕见的前端部署疏忽,让新上线的网页版 App Store 源码被完整扒下!
苹果近期悄然更新了网页版 App Store,并将地址改为新的 https://apps.apple.com。这次更新带来了一项重要变化:非苹果设备用户也可以随意浏览 App Store,还能分享应用链接。
但就在新版网页上线后不久,有开发者发现:前端源码竟可完整提取并查看!
这究竟是怎么发生的?本文将事件始末、技术原因、本地运行方法及示例代码一次讲清。
🚨 事故经过:SourceMap 没关,源码被扒光
GitHub 用户 rxliuli 发现,苹果在部署新版 App Store 网页时,忘记关闭 SourceMap 功能。
🔍 SourceMap 是什么?
SourceMap 是前端开发时的重要调试工具,它会将线上压缩后的 .js/.css 文件映射回人类可读的源码,方便定位问题。但……
正常生产环境必须关闭 SourceMap!
否则,任何人都能通过浏览器控制台或插件,将源码完整下载 🤯。
果然,rxliuli 使用 Chrome 插件,几分钟内就将整个前端项目抓取下来并发布到了 GitHub:
✅ 源码包括 Svelte + TypeScript 项目结构、UI 组件、API 逻辑、路由配置……几乎完整可运行!
💾 泄露代码仓库(已被封禁)
🔗 原 GitHub 仓库链接(状态:已封禁)
https://github.com/rxliuli/apps.apple.com
虽然仓库目前已无法访问,但部分热心开发者已备份代码,比如这个Fork的地址
github apple前端源码
直接下载
如果链接失效,私信或者微信公众号"四楼没电梯" 发送 "applestore"留言
👀 泄露代码包含哪些?
根据仓库 README 与实际内容,泄露部分包括:
- ✅ 基于 Svelte + TypeScript 的完整前端源码
- ✅ 状态管理实现
- ✅ UI 组件与样式
- ✅ API 对接逻辑
- ✅ 路由 & 页面配置
- ⛔️ 不包含后端代码、敏感配置或用户数据
也就是说,功能重现没问题,但无法用于攻击苹果服务器或获取隐私信息。
这也是为什么业界认为:此次事故虽然是前端团队的“稀有翻车”,但实际影响较为有限。
🧪 实机效果展示
以下为仓库中预览到的界面截图:

界面与 App Store 指标一致,页面布局和动态交互均支持本地渲染。用 Chrome 本地静态服务器即可访问。

📦 如何本地运行泄露代码?
泄漏项目包含两部分内容:
| 部分 | 说明 | 是否可立即运行 |
|---|---|---|
| 已编译前端产物 | /assets/ 和各国家站点目录(如 /us/) | ✅ 直接运行即可 |
| 源代码 | /src/ + /shared/,基于 Svelte | ⚠️ 需自行补依赖和私有包 |
因此,给出两种本地运行方式:快速预览(零依赖) 和 源码构建(需补包)。
✅ 方式 A — 快速静态预览(推荐)
适合不想折腾,只想看效果的朋友。
运行步骤(以 PowerShell 为例):
# 进入仓库根目录(示例)
Set-Location -Path 'd:\dragon\page\apps.apple.com-main'
# 启动本地静态服务器(默认监听 8080 端口)
python -m http.server 8080
# 打开浏览器预览页面
# http://localhost:8080/us/iphone/today.html
注意:你可能看到 404 错误,原因是 HTML 引用的资源名带
~,但磁盘上文件实际无该符号。本文已为这些常见文件创建了兼容副本,确保能正常访问。
示例兼容文件:
assets/index~B87DnNzwx-.js(从assets/indexB87DnNzwx-.js复制)assets/index~C-lllyUtRG.css(从assets/indexC-lllyUtRG.css复制)- 添加最小
manifest.json(供页面请求)
如果你仍遇到缺失资源,可用以下命令排查路径:
Get-ChildItem -Recurse -Include *.html,*.js,*.css -File |
Select-String -Pattern '/assets/[^"\'\)\s>]+' -AllMatches |
ForEach-Object { $_.Matches } | ForEach-Object { $_.Value } | Sort-Object -Unique
🛠️ 方式 B — 从源码运行(需补依赖)
适合想研究项目结构+源码或做二次开发的朋友。
项目采用 Svelte + Vite + TypeScript,但内含大量 @amp/* 私有组件,需要自行处理(如制作 stub 包)。
关键步骤:
- 安装 Node.js(推荐 v18+)
- 在根目录创建
package.json - 安装必要依赖并处理私有包
- 运行
npm run dev
示例 package.json:
{
"name": "appstore-local",
"private": true,
"version": "0.0.0",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"devDependencies": {
"vite": "^5.0.0",
"svelte": "^4.0.0",
"@sveltejs/vite-plugin-svelte": "^2.0.0",
"typescript": "^5.0.0",
"sass": "^1.0.0"
}
}
启动示例:
Set-Location -Path 'd:\dragon\page\apps.apple.com-main'
npm install
npm run dev
🔚 结语:权当一声“苹果也会犯错”
前端部署遗漏 SourceMap,看似低级,却是所有 Web 工程师都可能踩过的坑。
这次公开“翻车”不仅让开发者窥见苹果前端架构,对于学习 Svelte + Vite 实战的朋友而言,也是一份宝贵的“实战级”代码库。
实用小工具
App Store 截图生成器 、在线图片压缩、utc timestamp, ctf tool
乖猫记账,AI智能分类的最佳聊天记账App。
Elasticsearch可视化客户端工具
百度网盘免费加速
1636

被折叠的 条评论
为什么被折叠?



