ipatool:一条命令从 App Store 下载任意版本 IPA 和 macOS pkg 的完全指南
【免费下载链接】ipatoolCommand-line tool that allows you to search for iOS, iPadOS, tvOS, visionOS, and macOS apps on the App Store, and download .ipa or macOS .pkg app packages.项目地址: https://gitcode.com/GitHub_Trending/ip/ipatool
手上要跑一次兼容性测试,得找某个 App 的旧版安装包。终端里,ipatool 这个跨平台 IPA 下载工具一条命令就能串起搜索、列版本、下载全过程:直连 App Store 官方服务,不用越狱设备,任意版本都能拿,包括 App Store 页面已经不再展示的老版本。
它和老路子差在哪
ipatool 是一个 Go 命令行工具。Windows、Linux、macOS 上都能跑,可以搜索 App Store 里 iOS、iPadOS、tvOS、visionOS、macOS 五个平台的应用,下载 .ipa 或 macOS .pkg 安装包。
对比常规路径:
- 不用越狱设备或在 Mac 上装一遍应用再翻安装包;
- 不用去网上找旧包,再担心它被改过;
- 用 Apple ID 登录,包直接从官方服务取回来。
唯一前置条件:一个能登录 App Store 的 Apple ID。
🚀 5 分钟跑通第一条命令
macOS 用户用 Homebrew 一条命令装好;其他平台拉源码编译,几分钟搞定:
brew install ipatool # macOS # Windows / Linux git clone https://gitcode.com/GitHub_Trending/ip/ipatool cd ipatool && go build -o ipatool main.go拿到 ipatool 可执行文件后,第一件事是登录。这一步只做一次,凭证写入系统钥匙串,后续命令不用重复:
ipatool auth login按提示输入 Apple ID 和密码即可;开了双重认证的账户会顺带要一次验证码。
高频任务实战
如何找到目标应用的 Bundle ID
只记得应用名字时,从搜索开始。--limit控制结果条数,默认 5 条:
ipatool search "cloud music" --limit 10 --platform iphone列表给出每个匹配应用的名称、Bundle ID、价格等字段。记下目标应用的 Bundle ID,后面所有命令都用-b传它。
如何获取某应用的全部历史版本
App Store 页面只展示最新版,list-versions把能下的版本一次列全:
ipatool list-versions -b com.netease.cloudmusic输出每个版本一行,行尾的数字就是下载时--external-version-id要用的 ID。搜索、列版本、下载的实现都在 pkg/appstore/,想深挖协议细节可以从这里入手。
如何下载指定版本的 IPA 或 macOS pkg
确定版本后,-o指定存放路径就能开下:
ipatool download -b com.netease.cloudmusic --external-version-id 1234567890 -o ./cloudmusic.ipa把示例里的数字换成上一步列出的 ID。终端出现进度条,走到 100% 时 .ipa 就在指定目录里;省略--external-version-id则默认拉最新版。三个常用变体:
- 付费应用加
--purchase,工具先申请授权再开始下载; - 下载 macOS 应用加
--platform macos,产物是 .pkg 安装包; - 也可以改用数字 ID 定位应用:
-i 应用ID。
把重复劳动交给脚本
要批量抓一批应用包,把 Bundle ID 每行一个写进 apps.txt,循环下载:
mkdir -p ./downloads while read -r bundle; do ipatool download -b "$bundle" -o "./downloads/$bundle.ipa" done < apps.txt跑完后 ./downloads 里一个应用一个包;要指定旧版本,给循环里的 download 命令补上--external-version-id参数即可。
CI 之类的自动化环境里没法交互输入,凭证要全程走参数:
ipatool --non-interactive auth login -e "$APPLE_ID" -p "$APPLE_ID_PASSWORD" --auth-code "$OTP"凭证照旧存进钥匙串,同一环境里后续下载不用再登录。
卡住了先查这里
现象:之前正常的命令突然报认证错误。原因:Apple 会定期让已保存的凭证失效,令牌过期后必须重新登录。解法:先清空再重新登录:
ipatool auth revoke ipatool auth login重新登录后,各命令恢复正常。
现象:开了双重认证的账户登录时要验证码;脚本里则打印 2FA code is required 后直接退出。原因:首次登录需要一次性 2FA 码,非交互模式不会弹出输入,只能靠参数传。解法:交互模式下按提示输入;脚本里带上参数重跑:
ipatool auth login --auth-code 123456带上验证码重跑一次,登录即完成。
现象:Linux 上执行auth login报 keyring 相关错误,凭证存不进去。原因:保存凭证依赖系统钥匙串服务 libsecret,部分发行版默认没装。解法:先装依赖,再重新登录:
sudo apt-get install libsecret-1-0 ipatool auth login装完重跑登录,凭证即可正常入库。
命令速查表
所有命令都支持全局参数--format json(结构化输出)和--verbose(详细日志)。
| 命令 | 用途 | 常用参数 |
|---|---|---|
auth login | 登录 App Store 并保存凭证 | --email、--password、--auth-code |
auth info | 查看当前登录账户 | — |
auth revoke | 撤销已保存的凭证 | — |
search <关键词> | 搜索 App Store 应用 | --limit、--platform |
list-versions | 列出应用全部可下载版本 | -b/-i |
download | 下载 IPA 或 macOS pkg 安装包 | -b、-o、--external-version-id、--purchase、--platform |
purchase | 为付费应用申请授权 | -b、--platform |
get-version-metadata | 查询某个具体版本的元数据 | -b、--external-version-id(必填) |
list-purchases | 列出账户已购应用 | --page、--max-results |
最快的上手方式,是现在打开终端敲一条ipatool search <你的关键词>试试;完整参数说明与平台支持见 README.md。
【免费下载链接】ipatoolCommand-line tool that allows you to search for iOS, iPadOS, tvOS, visionOS, and macOS apps on the App Store, and download .ipa or macOS .pkg app packages.项目地址: https://gitcode.com/GitHub_Trending/ip/ipatool
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考