upgradedownload 使用教程
什么是 upgradedownload?
upgradedownload 是一个专门为 macOS 设计的命令行工具,它的核心功能是:将 App Store 应用下载为最新的、不受 Gatekeeper 限制的 .app 文件。

它解决了两个痛点:
- 绕过 App Store 的安装限制:下载的应用是独立的
.app包,你可以直接复制到任何 Mac 上使用,无需登录 App Store 账户。 - 获取最新版本:它会直接从 Apple 的服务器获取应用的最新版本,而不是你电脑上已安装的版本。
常见用途:
- 制作应用安装包:为团队或网络中的其他 Mac 准备应用安装包。
- 版本控制:将特定版本的应用(如 V1.2.3)下载下来存档。
- 自动化部署:配合脚本,实现应用的批量、自动化安装。
- 分发应用:在没有网络连接的 Mac 上安装应用。
准备工作(非常重要)
在使用 upgradedownload 之前,你必须完成以下两步,否则工具将无法工作。
安装 Xcode 命令行工具
upgradedownload 依赖于 Xcode 自带的 clang 编译器来编译其核心组件。

打开终端,运行以下命令:
xcode-select --install
系统会弹出一个安装窗口,点击“安装”并完成安装,安装后,你可以通过 xcode-select -p 来确认安装路径(通常是 /Applications/Xcode.app/Contents/Developer)。
安装 Homebrew
upgradedownload 通常通过 Homebrew 包管理器来安装,如果你的 Mac 还没有安装 Homebrew,请先安装。
打开终端,运行以下官方安装命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装过程可能需要一些时间,请耐心等待。
安装 upgradedownload
准备工作完成后,安装 upgradedownload 非常简单,只需一行命令:
brew install upgradedownload
Homebrew 会自动下载并完成所有安装配置。
核心使用方法
upgradedownload 的基本语法是:
upgradedownload <app-bundle-id>
<app-bundle-id> 是每个 macOS 应用的唯一标识符。找到这个 ID 是使用本工具的关键。
如何查找应用的 Bundle ID?
有几种方法可以找到:
-
使用
mas命令(推荐)mas是另一个通过 Homebrew 安装的、用于管理 App Store 应用的工具。- 安装
mas:brew install mas - 列出你已安装的 App Store 应用及其 ID:
mas list - 输出格式类似:
123456789 AppName (1.2.3),前面的数字就是 ID。
- 安装
-
手动查找(通过 Finder)
- 打开 Finder,进入
应用程序文件夹。 - 右键点击你想下载的应用,选择“显示包内容”。
- 在弹出的窗口中,进入
Contents->Info.plist文件。 - 右键点击
Info.plist,选择“显示”或用文本编辑器打开它。 - 在文件中找到
CFBundleIdentifier这一键,它对应的值就是 Bundle ID。
- 打开 Finder,进入
实战示例
示例 1:下载 The Unarchiver
- 用
mas list查到 The Unarchiver 的 ID 是425424353。 - 在终端运行:
upgradedownload 425424353
- 工具会开始工作,你会看到类似下面的输出:
[*] Getting app info from the App Store... [*] App: The Unarchiver (Version: 4.3.0) [*] Downloading app package... [*] Verifying app package... [*] Extracting app... [*] Successfully extracted to /path/to/your/downloads/The Unarchiver.app下载的
.app文件通常会保存在你用户的“下载”文件夹里。
示例 2:下载 Xcode
- Xcode 的 Bundle ID 是
497799835。 - 运行命令:
upgradedownload 497799835
- 注意:Xcode 文件非常大(可能超过 10GB),下载和提取过程会非常耗时,并且需要确保你有足够的磁盘空间。
高级选项与技巧
upgradedownload 提供了一些有用的命令行选项,让功能更强大。
指定下载版本
默认情况下,它会下载最新版,但如果你想下载一个特定的旧版本,可以使用 --version 选项。
-
语法:
upgradedownload <bundle-id> --version <version-number> -
示例:下载 VLC Media Player 的 3.0.18 版本
# 假设 VLC 的 ID 是 547369404 upgradedownload 547369404 --version 3.0.18
指定输出目录
默认下载到“下载”文件夹,你可以用 -o 或 --output 指定任何你想要的位置。
-
语法:
upgradedownload <bundle-id> -o /path/to/your/directory -
示例:将下载的 Telegram 应用直接放到桌面
upgradedownload 747648890 -o ~/Desktop
查看可用版本
在下载特定版本之前,你可能想知道有哪些版本可用,可以使用 --list-versions 选项。
-
语法:
upgradedownload <bundle-id> --list-versions -
示例:查看 Microsoft Edge 的可用版本
upgradedownload 1289103908 --list-versions
输出会列出所有可用的版本号,供你选择。
调试模式
如果遇到问题,可以使用 --debug 模式来获取更详细的日志信息,方便排查。
- 语法:
upgradedownload <bundle-id> --debug
常见问题与解决方案 (FAQ)
Q1: 报错 xcrun: error: active developer directory is not set...
A: 这说明你没有正确安装 Xcode 命令行工具,请返回第二步,运行 xcode-select --install。
Q2: 报错 Error: Unable to locate app with id...
A: 这几乎可以肯定是 Bundle ID 错误,请仔细检查你输入的 ID 是否正确,可以通过 mas list 再次确认。
Q3: 报错 Error: No such file or directory 或权限问题
A: 这通常是你指定的输出目录不存在,或者你没有权限写入该目录,请检查目录路径和你的用户权限。
Q4: 下载的 .app 文件无法打开,提示“来自不受信的开发者”
A: 这是 Gatekeeper 机制,你有两种方法解决:
- 右键点击应用 -> “打开” -> 在弹出的对话框中点击“打开”。
- 在“系统设置” -> “隐私与安全性” -> “安全性”中,将“允许从以下位置下载的应用”设置为“App Store 和被认可的开发者”。
- 终端中运行
xattr -dr com.apple.quarantine /path/to/your/app.app来移除隔离属性。
Q5: 工具提示需要更新,但 brew upgrade 后还是旧版本?
A: upgradedownload 的更新可能不会非常及时,如果遇到此问题,可以尝试从源码重新安装:
brew uninstall upgradedownload brew install --HEAD upgradedownload
--HEAD 会安装最新的开发版本。
upgradedownload 是一个功能极其强大且灵活的 macOS 工具,尤其适合开发者、系统管理员和需要批量部署应用的用户,掌握它的核心用法和几个关键选项,你就能轻松管理 App Store 应用的分发和安装。
希望这份教程对你有帮助!
