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
ipatool 是跨平台 IPA 下载工具,在 Windows、Linux、macOS 上直连 App Store,一条命令搜索应用、列出全部版本、拉取 .ipa 或 macOS .pkg 安装包。不需要越狱设备,旧版 App Store 版本也能按编号直接下载。
周四下午,QA 让你把一个应用的某个旧版本装到测试机上做兼容回归。App Store 页面只挂着最新版,网上翻旧包又怕来源不明。常规路子要么越狱设备,要么用 Mac 上的 iTunes 装一遍再进容器翻安装包,哪一步卡住都白等一个下午。
ipatool 的思路很简单:直接找 Apple 官方服务要包,指定版本号就下。
装好工具并登录
先拿到可执行文件,有 Go 环境的话从源码直接编译,全平台一条命令:
git clone https://gitcode.com/GitHub_Trending/ip/ipatool cd ipatool go build -o ipatool跑完当前目录会出现 ipatool 可执行文件;macOS 用户可跳过这步,直接brew install ipatool。
可执行文件就绪后完成登录,凭证会存进系统钥匙串,后面的命令不用再输密码:
ipatool auth login跑完会提示输入 Apple ID 和密码,开了双重验证的账户还要再输一次验证码,成功后终端能看到你的账户名和邮箱。
从搜索结果里拉出目标应用
后面所有命令都靠 Bundle ID 定位应用,搜索命令就是拿它的地方:
ipatool search "wechat" --limit 5跑完会看到最多 5 个匹配应用,每行带名称、Bundle ID 和价格。挑出目标应用,记下它的 Bundle ID,后面-b参数就靠它。
只想看某个平台的应用?加--platform macos,结果就只返回该平台的应用。
发起 IPA 下载:找全旧版本再锁定
App Store 页面只显示最新,list-versions能把某个应用的全部版本列出来:
ipatool list-versions -b com.tencent.xin跑完会看到一串外部版本标识(external-version-id),这是每个可下载版本的“门牌号”。想看某个 id 对应几号版本、哪天发布,用get-version-metadata -b <Bundle ID> --external-version-id <ID>就能查到版本号与发布日期。
版本定了,一条下载命令搞定,-o指定存放路径:
ipatool download -b com.tencent.xin --external-version-id 1677862400 -o wechat.ipa跑完终端出现进度条,走到 100% 时 .ipa 就在你指定的路径。付费应用加个--purchase,工具会先自动申请授权再下载。
想批量拉取或喂给脚本?所有命令都支持--format json,ipatool search "news" --format json | jq -r '.apps[].name'就能每行一个名字。Bundle ID 固定的话直接循环:
for app in com.tencent.xin com.zhihu.ios; do ipatool download -b $app -o ./downloads/$app.ipa done循环跑完,./downloads 目录里就是每个 Bundle ID 对应的 .ipa。脚本环境里给命令末尾加--non-interactive;几个 GB 的大包用nohup丢后台跑。
搜索、查版本、下载的逻辑都在 pkg/appstore/,想深挖源码从这里入手。
绕开三个坑
症状:之前正常的命令突然报认证错误,或登录怎么都过不了。原因:Apple 会定期让已保存的凭证失效,双重验证账户还要输一次性验证码。解法:ipatool auth revoke清掉,再ipatool auth login重新登录,按提示输验证码。
症状:Linux 上auth login报 keyring 相关错误。原因:凭证存系统钥匙串,依赖 libsecret 服务,部分发行版默认没装。解法:sudo apt-get install libsecret-1-dev装依赖,再重新登录。
症状:付费应用下载时报需要 license。原因:这个账户没有该付费应用的授权,直接下不了。解法:下载命令加--purchase参数,工具会自动申请授权。
一张表查命令
| 命令 | 作用 | 关键参数 |
|---|---|---|
auth login | 登录 App Store,凭证存入钥匙串 | --email、--password、--auth-code |
search | 搜索应用,拿 Bundle ID | --limit、--platform |
list-versions | 列出应用全部可下载版本 | -b/-i、--platform |
download | 下载指定版本 IPA 或 pkg | -b、-o、--external-version-id、--purchase |
get-version-metadata | 查具体版本号的版本与发布日期 | -b、--external-version-id |
auth info、auth revoke、purchase、list-purchases也都可用,ipatool --help一览无余。
现在开始
ipatool:打开终端,敲下你的第一条搜索命令。
详见 项目 README。
【免费下载链接】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),仅供参考