ipatool 三步下载 IPA:不装 Xcode 也能从 App Store 拿应用安装包
【免费下载链接】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
ipatool 是一款跨平台的命令行工具,帮你在 macOS、Linux、Windows 上直接搜索 App Store 应用并下载 IPA 或 macOS .pkg 安装包,无需 Mac 也能在 Windows 上完成 IPA 下载。它用 Apple ID 认证,覆盖 iOS、iPadOS、tvOS、visionOS 与 macOS 五个平台。
一分钟跑通 ipatool:从安装到第一条搜索
这一段让你用最短路径装上工具、登录并出结果。macOS 可直接用 Homebrew,Linux 与 Windows 从 Releases 取对应平台的压缩包放入 PATH。
# macOS 用 Homebrew 安装;其他平台从 Releases 下载压缩包后加入 PATH brew install ipatool登录后凭据会写进系统钥匙串,之后多数命令自动复用:
# 登录 App Store,交互式输入密码 ipatool auth login --email you@example.com用一条搜索确认连通性,默认返回 5 条结果:
# 搜索应用并放宽结果数量 ipatool search telegram --limit 10预期:列出若干应用的 ID、名称与开发商,供后续download使用。
围绕下载 IPA 的四个真实场景
拿到某个应用的最新安装包
你只需应用 ID 或 bundle identifier,一条命令即可把最新版本拉成本地文件。
# 按应用 ID 下载最新版本到指定路径 ipatool download -i 686449807 -o telegram.ipa预期:终端先走一段downloading进度条,完成后打印目标路径与success: true,文件落在-o指定的位置。
下载指定历史版本的两种写法
想复现旧版本的崩溃或做兼容性对比时,先用list-versions拿到每个版本的external-version-id,再传给 download。
# 第一步:列出该应用所有可用版本 ipatool list-versions -i 686449807 # 第二步:用拿到的 id 锁定版本下载 ipatool download -i 686449807 --external-version-id 1000001234 -o tg-old.ipa另一种写法是把-i换成-b com.xxx直接给 bundle identifier,省去查 ID 的步骤,--external-version-id保持不变。
给未购买的应用补许可证
应用若没被当前账号购买过,download 会报缺许可证;加上--purchase让它先自动取许可证(免费应用即相当于领取)再下载。
预期:日志先出现 purchase 记录,随后正常下载,结尾purchased: true。
把 ipatool 接进 CI 流水线
在无人值守环境里,把交互关掉、输出换成 JSON,脚本就能直接解析。登录用ipatool auth login -e ... -p "$PASS" --auth-code "$CODE" --non-interactive,下载用ipatool download -i ... -o /tmp/app.ipa --non-interactive --format json --keychain-passphrase "$KEY"。
预期:命令以退出码 0 结束,JSON 输出可被 Jenkins、GitHub Actions 直接消费。
ipatool 命令与参数速查
这张表让你一屏查完常用命令,省去逐条翻--help。
| 命令 | 常用参数 | 作用 | 示例 |
|---|---|---|---|
auth login | -e/--email(必填)、-p/--password、--auth-code | 登录 App Store,凭据写入系统钥匙串 | ipatool auth login -e you@example.com |
search | -l/--limit(默认 5)、--platform | 搜索应用 | ipatool search telegram -l 10 |
download | -i/--app-id、-b/--bundle-identifier、-o/--output、--external-version-id、--platform、--purchase | 下载 .ipa / .pkg | ipatool download -i 686449807 -o tg.ipa |
list-versions | -i/--app-id、-b/--bundle-identifier | 列出可用版本 | ipatool list-versions -i 686449807 |
get-version-metadata | -i、-b、--external-version-id(必填) | 解析某版本元数据 | ipatool get-version-metadata -i 686449807 --external-version-id 123 |
purchase | -i、-b、--platform | 为应用获取许可证 | ipatool purchase -b com.tencent.xin |
list-purchases | -l/--max-results(默认 10)、-p/--page | 列出账号已购应用 | ipatool list-purchases -l 20 |
auth info/auth revoke | — | 查看当前账号 / 撤销凭据 | ipatool auth info |
全局参数对所有命令生效:
| 参数 | 作用 |
|---|---|
--format | 输出text或json,默认text |
--non-interactive | 非交互会话,供自动化 |
--verbose | 打开详细日志 |
--keychain-passphrase | 解锁钥匙串的口令 |
ipatool 高频坑位排查
遇到报错时,按下面的"现象 → 原因 → 解决"三步能快速定位。
- 登录反复要求 2FA 验证码。原因:Apple ID 开了双重认证。解决:交互模式直接输入;自动化改用
--auth-code,或在 Apple 后台生成应用专用密码。验证码获取入口见下图。
- 下载报"需要许可证"(license required)。原因:该应用未被当前账号购买。解决:
download加--purchase,或先单独purchase。 - 自动化里凭据读不出来。原因:钥匙串需要口令解锁。解决:传
--keychain-passphrase。 - 首次登录特别慢,像卡死。原因:首次认证流程本身要几分钟。解决:等它完成,凭据写入系统钥匙串后后续复用。
- 搜索结果平台混杂或数量偏少。原因:未指定
--limit(默认 5)与--platform。解决:加--limit与--platform iphone|ipad|appletv|visionos|macos。
和 CI/CD 及其他工具的组合方向
- 在 GitHub Actions / Jenkins 里用
--non-interactive --format json拉包并归档。 - 用
list-purchases定期比对账号已购清单。 - 用 shell 循环一批 app-id 批量
download。
实现细节可参考 cmd/download.go 与 pkg/appstore/ 两个目录。
适合谁,下一步做什么
如果你是 iOS 开发者或测试同学,需要稳定拿到某个应用的最新或历史版本包,就从ipatool search找到 app-id,再用ipatool download开始。
【免费下载链接】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),仅供参考