ipatool 三步下载 IPA:不装 Xcode 也能从 App Store 拿应用安装包
2026/9/16 15:31:37 网站建设 项目流程

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 / .pkgipatool 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输出textjson,默认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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询