如何用 ipatool 零配置从 App Store 下载 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
你被安排做一个旧版本 App 的兼容性测试,公司电脑装不了 Xcode,iTunes 也不给你想抓的 IPA 下载入口。ipatool 解决的就是这件事:一条命令行登录你的 Apple ID,就能把 App Store 里指定版本的 IPA 拉到本地,不用装任何 Apple 开发工具。
ipatool 是一个 Go 写的命令行工具,专门搜索 iOS、iPadOS、tvOS、visionOS 和 macOS 的 App 并下载.ipa或.pkg安装包。它不管装到手机上那一步——下载到的包要往真机或模拟器里塞,还得配合别的工具,它只负责把包给你弄到手。
先把它装上
macOS 用户直接用 Homebrew,一条命令的事:
brew install ipatool其他平台从官方 Release 页拿预编译二进制,或者 clone 仓库(https://gitcode.com/GitHub_Trending/ip/ipatool)后go build -o ipatool自己编译,Go 版本要求 1.25+。
装没装好,30 秒验证一下,能看到版本号和帮助信息就算通过了:
ipatool --version ipatool --help📦 搜、下、管版本:按你的目标走
搜索 App Store 应用拿到 App ID
后面下载和查版本都要靠 App ID 或 Bundle Identifier 定位应用,先搜一下:
ipatool search "微信" --limit 10结果里每条都有 App ID、名称、版本和 Bundle ID。想拿机器能直接解析的结果,全局加--format json,输出就是结构化 JSON。
--limit控制返回条数,默认 5;visionOS 平台上限是 12。
登录 Apple ID 完成 App Store 认证
第一次用必须认证,流程就像你第一次连 Wi-Fi 输密码——凭据存进系统 keychain 后,之后所有命令都自动复用(存储逻辑见 pkg/keychain/):
ipatool auth login -e your_apple_id@icloud.com回车后按提示输入密码,开了双重认证的账号还会要一次验证码。首次登录可能要走几分钟,看到账号信息显示成功就完事了。想确认当前状态跑ipatool auth info,换号或注销跑ipatool auth login重新登录或ipatool auth revoke。
脚本或 CI 环境里没人交互,改用--password和--auth-code把凭据直接传进去:
ipatool auth login -e your_apple_id@icloud.com \ --password "$APPLE_ID_PASSWORD" --auth-code "$TFA_CODE" --non-interactive非交互模式下
--password是必填项,漏了会直接报错退出。
三步拿到指定版本的 IPA 包
认证完成后,IPA 下载只需要一条命令。用 App ID 或 Bundle Identifier 任选其一:
ipatool download -b com.tencent.xin -o ~/Downloads/wechat.ipa不加版本参数默认拉最新版。要拉旧版,先用list-versions查历史版本,拿到external-version-id再指定:
ipatool list-versions -b com.tencent.xin ipatool download -b com.tencent.xin \ --external-version-id "1234567890" -o ~/Downloads/wechat-old.ipa
--platform macos下载的是.pkg而不是.ipa;付费应用要补--purchase,工具会自动替你获取下载授权,交互确认环节用--non-interactive跳过。
写脚本批量下载多个 App
所有命令都支持--format json输出,配合jq就能串成自动化流程,App Store 的交互细节封装在 pkg/appstore/ 里,脚本层面不用关心。
🛠️ 组合拳:自动归档一个 App 的全部历史版本
把上面三个能力串起来,这个脚本可以把你账号里搜到的某个 App 的所有历史版本全拉到本地归档:
#!/bin/bash APP="com.tencent.xin" DIR=~/AppArchives/$(echo "$APP" | cut -d. -f3) mkdir -p "$DIR" # 登录,凭据已存 keychain 时秒过 ipatool auth login -e "$APPLE_ID" --password "$APPLE_ID_PASSWORD" --non-interactive ipatool auth info # 列出全部历史版本,逐个下载 for v in $(ipatool list-versions -b "$APP" --format json \ | jq -r '.externalVersionIdentifiers[].id'); do ipatool download -b "$APP" --external-version-id "$v" \ -o "$DIR/$APP-$v.ipa" done跑完$DIR下就是一排带版本号命名的 IPA,测试同学要哪个版本拿哪个,不用再问你要。
排错速查
| 症状 | 最可能原因 | 一条解决命令 |
|---|---|---|
| 命令报 2FA code is required | 账号开了双重认证但没给验证码 | ipatool auth login -e <email> --password <pwd> --auth-code <6位码> |
| 下载报需要 license | 该账号没这个 App 的下载授权 | ipatool download -b <bundle-id> --purchase |
| 偶发认证过期、重跑就好了 | 密码 token 有时效,工具会自动重登 | ipatool auth login -e <email>重新登录一次 |
| 提示 keychain 锁无法访问 | 系统钥匙串要解锁密码 | 加全局参数--keychain-passphrase <你的密码> |
装好后,旧版 IPA 一条命令就能落到本地目录,兼容性测试的物料问题到此为止。参数细节和更多命令看仓库 README,遇到怪问题直接去 issue 区翻一翻或开一单。
【免费下载链接】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),仅供参考