gibMacOS 亲测手记:Windows 电脑直连 Apple 服务器下载 macOS 全系镜像的完整指南
凌晨一点,测试机还在等我交 macOS 镜像,而我手边只有一台 Windows 笔记本。Apple 官网的 macOS 下载页在非 Mac 浏览器里永远只给一个"即将推出"的占位符,第三方镜像站不是限速就是来路不明。那一晚我翻到一个叫 gibMacOS 的 Python 脚本——它能绕过"必须用 Mac 才能下载 macOS"这道坎,从 Apple 自己的服务器直连下载从 Tiger 到 Sequoia 的几乎所有系统组件。读下去,你会看到我怎么用它救场,它有哪些别人不说的坑,以及它值得放进你工具箱的哪个位置。
🚀 三分钟跑通第一步:克隆、运行、看到菜单
上手比想象中简单。先把仓库拉下来:
git clone https://gitcode.com/gh_mirrors/gi/gibMacOS
cd gibMacOS
python3 gibMacOS.py
前提只有一个:机器上有 Python 3(老版本也兼容 Py2)。Windows 用户更省事,直接双击 gibMacOS.bat,它会自动找 Python,找不到还会引导你安装,比纯命令行友好得多。
第一次运行,脚本会先访问 Apple 的软件更新目录服务器(swscan.apple.com)拉一份 sucatalog 目录文件,然后打印一个编号菜单,每个条目是"版本名 + 构建号 + 发布日期 + 体积",输入数字回车,进度条就开始走,默认存到 macOS Downloads/<catalog>/<版本名> 目录。下载逻辑的核心在 Scripts/downloader.py,目录解析在 Scripts/plist.py,想研究源码就从这两个文件下手。
命令行参数速查卡:一张表看懂核心下载指令
菜单适合探索,批量操作还得靠参数:
| 命令 | 作用 | 示例 |
|---|---|---|
--latest | 下载当前目录里的最新版本 | python3 gibMacOS.py --latest |
--version | 指定版本,可写数字或名字 | -v 10.15 或 -v Yosemite |
-d, --dmg | 只下载 .dmg 文件 | 只要磁盘镜像时用 |
-i, --print-urls | 只打印下载链接,不真下载 | 配合外部下载器提速 |
-c, --catalog | 切换目录:publicrelease / public / developer / customer | 想要测试版选 public |
-r, --recovery | 只找恢复包,不找完整安装器 | 做恢复盘专用 |
-o, --download-dir | 自定义下载目录 | 脚本化批量下载必备 |
-s / -n | 用本地缓存 / 重新下载并保存目录文件 | 网络差时救命 |
三个别人不告诉你的窍门
窍门一:给虚拟机找版本,加一个设备 ID 就够了。 --latest -D VMM-x86_64 会按设备 ID 过滤,直接挑出支持 x86_64 虚拟化的构建。VMware、VirtualBox 里装 macOS 最容易卡在这一步——列表里几十个条目,光靠肉眼分不清哪个能跑虚拟机,这行参数替你筛好了。
窍门二:断点续传不是全自动的。 下载目录已存在时,脚本会弹出 R/D 菜单:R 续传未完成的文件,D 清掉重来,别看到"已存在"就慌。另外网络不稳时,先跑一次 --newlocal 把 sucatalog.plist 存到本地 Scripts 目录,之后用 --savelocal 就能离线复用目录文件,不必每次都去 Apple 拉那份大文件。
窍门三:只想做恢复盘,别下十几 GB 全家桶。 加 --recovery 后脚本只找 RecoveryHDUpdate.pkg 和 RecoveryHDMetaDmg.pkg 两个恢复包,体积小一个量级。配合 Windows 下的 MakeInstall.bat(核心是 Scripts/diskwin.py),就能在 Windows 上直接做互联网恢复 U 盘。
避坑:下载下来不等于能直接用
这里最容易被新手误会:gibMacOS 下载的不是"一个装好就能用的镜像文件",而是 Apple 的组件包。Catalina 及更早版本,需要在 macOS 环境里用 BuildmacOSInstallApp.command 把它组装成安装 App;从 Big Sur 开始 Apple 改了分发方式,下载包里直接是 InstallAssistant.pkg,双击运行就会把安装器放进"应用程序"文件夹,不再需要组装。版本策略的分水岭就在 11 这个数字上。
另外注意:下载全程不需要管理员权限,但写 U 盘、装系统时才需要;单次下载动辄 5–15 GB,别在 Wi-Fi 高峰段硬刚。下载完脚本会逐条列出 Succeeded / Failed,失败的文件重跑一次即可续上。
三问三答
Q:下载到一半断网了,文件会废吗? 不会,重跑命令,目录存在时选 R(Resume)就能从断点续传。
Q:我只有 Windows 或 Linux,能跑吗? 能,脚本是纯 Python、跨平台,Windows 上还有现成的 .bat 启动器。
Q:为什么下载到的不是 .dmg 而是 .pkg? 因为 Big Sur 之后 Apple 改走 InstallAssistant.pkg 分发,双击运行即可,这是新常态。
放进工作流之前:和同类方案怎么选
Apple 官方下载页需要 Mac 才能访问,镜像站有安全风险;社区里类似的开源方案也能下载,但要自己解析输出、自己处理菜单,而 gibMacOS 把交互菜单、设备 ID 过滤、恢复包筛选、Windows 启动盘制作全打包好了。一句话:想要开箱即用、跨平台、可脚本化,选它准没错;只有当你需要深度定制下载逻辑时,才值得自己写。
两个真实场景的搭配方案
场景一:Windows 装黑苹果或虚拟机。 gibMacOS 下载 → 虚拟机里直接挂载镜像启动;要实体机就接上 U 盘用 MakeInstall.bat 写入(Catalina 及更早支持,Big Sur 起 Windows 侧做不了恢复 U 盘,走 InstallAssistant.pkg 即可)。
场景二:测试环境批量要多个版本。 非交互模式配合循环,一个命令管一批:
for v in 10.14 10.15 11 12; do
python3 gibMacOS.py --version $v --no-interactive -o ./downloads/$v
done
这段的意思很简单:挨个版本跑,不用守在屏幕前按菜单。
如果给 gibMacOS 一个比喻,我会说它像一把 Apple 服务器仓库的钥匙——它不替你装系统、不替你写盘,只负责把门打开,把选择权和剩下的路都交给你。正因为职责单一,它才足够稳、足够快。今晚就 clone 下来跑一次 --latest,别等真需要的时候再手忙脚乱。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



