三步用 ipatool 下载 iOS IPA 包:新手完整的上手指南
【免费下载链接】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
你想拿到某个 iOS 应用的 IPA 包做静态分析或版本归档,但 App Store 没有直接导出的入口。ipatool 就是一个命令行工具,用你自己的 Apple ID 登录 App Store,直接搜索并下载 iOS、macOS 应用,把 .ipa 或 .pkg 包存到本地。
下图是它搜索并下载 IPA 的完整过程预览:
ipatool 能做什么、不做什么
一句话定位:用你自己的 Apple ID 会话,把 App Store 里的应用包拉到本地磁盘。
它能做的:
- 登录 App Store,凭据自动存入系统钥匙串
- 搜索 iOS、iPadOS、tvOS、visionOS、macOS 五个平台的应用
- 下载最新版或指定的历史版本,
--purchase自动获取 license
它不做的:
- 下载下来的是加密包,适合分析和归档,不适合直接装到 iPhone 上
- 没有 Apple ID 就用不了,所有命令都依赖你自己的账号会话
一条命令装好并验证 ipatool
| 系统 | 版本要求 | 备注 |
|---|---|---|
| macOS | 10.15 及以上 | 有 Homebrew,安装最省事 |
| Linux | Ubuntu 18.04 及以上 | 源码编译需要 Go 1.25+ |
| Windows | Windows 10 及以上 | 建议配合 WSL 使用 |
主路径,macOS 上一条命令装完:
brew install ipatoolHomebrew 会拉下预编译版本,装完终端里直接就能敲ipatool。其他系统或想装最新源码,用备选路径:
git clone https://gitcode.com/GitHub_Trending/ip/ipatool cd ipatool && go build -o ipatool编译出可执行文件后,把它移到 PATH 里的任意目录即可。跑一下帮助命令确认安装成功:
ipatool --help看到 auth、search、purchase、download 等命令列表,说明已经可以用了。
从登录 App Store 到拿到 IPA 的完整链路
第 1 步:用 Apple ID 登录,凭据进钥匙串
后面所有命令都依赖一个有效的 App Store 会话,先登录:
ipatool auth login -e you@example.com -p 'YOUR_PASSWORD'这条命令用你给定的 Apple ID 登录;如果账号开了双重认证,交互式模式下会自动提示你输入 6 位验证码,不用重新敲命令。跑完会输出账号的邮箱和姓名,此时凭据已存入钥匙串,后续命令都不用再输密码。用ipatool auth info可随时确认会话是否正常。
第 2 步:一条搜索命令找到应用的 bundle identifier
ipatool search "wechat" --limit 5命令向 App Store 发起查询,返回最多 5 个应用,每条包含名称、数字 ID 和 bundle identifier。你要记住的是 bundle identifier(如 com.tencent.xin),它是下载命令的关键参数。
第 3 步:按 bundle identifier 下载 IPA
ipatool download -b com.tencent.xin -o ./wechat.ipa --purchase命令按 bundle identifier 定位应用,把最新版下载到 ./wechat.ipa;--purchase让它在应用需要授权时自动获取 license,交互式模式下会显示下载进度条。跑完你得到一个加密的 IPA 包,可以直接解压分析。想下载历史版本时,先用ipatool list-versions -b com.tencent.xin拿版本列表,再把对应的--external-version-id传给下载命令。
批量下载与 JSON 输出,让 ipatool 变成长期工具
批量下载多个应用:把下载命令放进循环,一次跑完一串 bundle identifier:
for app in com.tencent.xin com.netease.cloudmusic; do ipatool download -b "$app" -o "./apps/$app.ipa" --purchase echo "done: $app" done每次迭代沿用同一条下载命令,循环替你省掉手工重复。
JSON 输出接脚本:任何命令加--format json都输出结构化数据,方便 jq 解析。把搜索结果的 bundle identifier 批量提取出来,就能直接生成一份下载任务清单。
定时版本监控:把ipatool list-versions放进 cron 任务,和上次记录的版本号对比,发现最新版变化时重新拉一份归档,无需写复杂逻辑。
卡住了看这里
问题:登录卡在二次验证码,CI 或脚本环境走不下去
怎么解决:默认是交互模式,没有终端就没法输验证码。显式传验证码并关闭交互即可:
ipatool auth login -e you@example.com -p 'YOUR_PASSWORD' --auth-code 123456 --non-interactive验证码可以在 Apple 账户的"登录与安全"设置里获取:
问题:下载时报 license required 错误
怎么解决:付费应用或已购应用需要先取到 license 才能下载。给下载命令加--purchase,或者先单独执行ipatool purchase -b <bundle-id>把授权拿好。
问题:用了一段时间后,命令提示凭据失效
怎么解决:App Store 的会话令牌有过期时间,重跑一遍登录命令即可;脚本环境可以加--keychain-passphrase参数自动解锁钥匙串。
跑通之后:给应用建一个自己的版本归档
下一步建议挑一个你常用的应用,用上面的流程把当前版本归档一份,之后每次list-versions发现新版时再拉一次。两点提醒:下载用的 Apple ID 建议是非主力账号,用完执行ipatool auth revoke清掉本地凭据;下载内容仅用于分析和备份,遵守 App Store 服务条款。想看懂实现,从 cmd/ 目录入手,每个子命令对应一个文件,核心的商店交互逻辑在 pkg/appstore/。
【免费下载链接】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),仅供参考