ipatool 三平台完整指南:在 Windows、Linux 和 macOS 上快速下载 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
手边只有一台 Windows 机器,却要拿一个 App Store 里的 IPA 给测试设备装?用 ipatool 就能办到:它是 App Store 的命令行客户端,搜索 iOS / iPadOS / tvOS / visionOS / macOS 应用,然后直接把 IPA(或 macOS 的 .pkg)拉到本地。同一条命令在三个系统上都能跑,这篇按真实项目把三平台用法一次讲清。
三步完成 IPA 下载:安装、登录、拉包
系统要求很简单:
- Windows、Linux、macOS 任一系统均可运行;
- 一个已开通 App Store 的 Apple ID;
- 若从源码编译,需要 Go 1.25+(
go.mod声明go 1.25.0)。
第一步:把 ipatool 装进 PATH
macOS 上直接用 Homebrew 安装(Windows / Linux 见第二步的源码编译):
brew install ipatoolWindows 和 Linux 从源码编译,装好 Go 后克隆仓库并编译出可执行文件:
git clone https://gitcode.com/GitHub_Trending/ip/ipatool cd ipatool go build -o ipatool把生成的ipatool可执行文件放进 PATH 里的任意目录(比如C:\Users\你\bin或~/.local/bin),之后在任何终端里都能直接调用。
第二步:用 Apple ID 登录
登录成功后,凭据会被写入系统凭据存储(各平台差异见下一节),之后所有命令都免密:
ipatool auth login第三步:下载第一个 IPA
下载时二选一指定应用:-b传 Bundle ID,或-i传 App ID。-o是输出路径,各平台写法不同:
# Windows PowerShell ipatool download -b com.tencent.xin -o $env:USERPROFILE\Downloads\wechat.ipa# Linux / macOS ipatool download -b com.tencent.xin -o $HOME/Downloads/wechat.ipa跑完这条命令,磁盘上就多了一个可以直接安装的 IPA 包。
Windows、Linux、macOS 差异一张表看懂
三个平台的命令完全一样,差别只在安装方式、凭据存哪、有没有额外配置:
| 维度 | Windows | Linux | macOS |
|---|---|---|---|
| 安装 | 源码编译:go build -o ipatool(无包管理器) | 源码编译 | brew install ipatool或源码编译 |
| 凭据存储 | 系统凭据管理器(底层wincred) | libsecret / 密钥环(底层keyring) | 系统钥匙串(底层go-keychain) |
| 额外配置 | PowerShell 若拦截执行,需调整执行策略 | 需 libsecret 可用;GNOME 桌面下确保gnome-keyring-daemon在运行 | 无 |
| 状态目录 | 用户目录(含 Windows 环境变量的处理) | 支持XDG_STATE_HOME/XDG_DATA_HOME | 用户目录 |
🔑 凭据读写走统一接口,代码在 pkg/keychain/;状态目录解析逻辑在 cmd/state_directory.go。
搜索 → 看版本 → 下载 → 授权:常用操作详解
按真实操作顺序走一遍,每个场景给一条最简命令。
1️⃣ 搜索应用,记下 ID 或 Bundle ID
search接收一个关键词,默认返回 5 条结果:
ipatool search "微信"输出里带每个应用的 ID 和 Bundle ID,下载时二选一要用来。想多看几条或限定平台:
ipatool search "微信" --limit 20 --platform iphone2️⃣ 列出可下载的版本
list-versions返回某应用全部可下载版本,每行含 external version ID——指定版本下载就靠它:
ipatool list-versions -b com.tencent.xin3️⃣ 下载 IPA 包
不指定版本时默认下载最新版:
ipatool download -b com.tencent.xin -o wechat.ipa要固定某个版本,把上一步拿到的 external version ID 传进来:
ipatool download -b com.tencent.xin --external-version-id 1677862400 -o wechat_v8.ipa4️⃣ 获取应用授权(付费应用)
付费应用下载前要先拿 license,purchase单独执行即可:
ipatool purchase -b com.tencent.xin也可以在下载时带上--purchase,缺 license 时工具会自动补授权并重试:
ipatool download -b com.tencent.xin -o wechat.ipa --purchase顺带一提:ipatool list-purchases能列出当前账号已购应用,按购买时间倒序,支持-p翻页、-l调每页条数。
一套代码跑三平台:原理简说
不用深入源码,明白三件事就够了:
- 操作系统差异被隔离了:pkg/util/operatingsystem/ 把读环境变量、建目录、删文件这类底层动作收进一个接口,业务代码不直接碰
os包,换系统只换实现; - 凭据各走各的,接口只有一个:pkg/keychain/ 定义
Get / Set / Remove三个方法,Windows 落在凭据管理器、macOS 落在钥匙串、Linux 落在 libsecret,对上层来说完全透明; - 网络层三平台共用:pkg/http/ 里的 HTTP 客户端处理 App Store 的 API 调用,带 cookie 持久化和重试——登录态过期时,
download命令内部会自动重新登录再续传。
效率玩法:批量、多版本、CI 集成
批量下载脚本
把要拉的应用 Bundle ID 写进数组,循环下载,顺手带上--purchase兜底授权:
#!/bin/bash APPS=( "com.tencent.xin" "com.apple.mobilesafari" ) mkdir -p ~/ipa_downloads for app in "${APPS[@]}"; do ipatool download -b "$app" --purchase -o ~/ipa_downloads/"$app".ipa done多版本与重试
想抓历史版本,先用list-versions查出目标版本的 external version ID,再用--external-version-id固定它;大文件下载偶发失败也不用管,download内置最多 3 次重试,license 缺失时自动补授权后重试。
CI/CD 集成
默认是交互模式,放进 Jenkins、GitHub Actions 这类无人值守环境要加--non-interactive:
stage('Download IPA') { steps { sh 'ipatool download -b com.example.app -o ./app.ipa --non-interactive' } }高频问题速答
Q:登录或下载时提示认证失败?先吊销旧凭据再重新登录,多数情况能解决:ipatool auth revoke后重新ipatool auth login。
Q:下载速度上不去?速度取决于你的网络到 App Store 的链路,工具没有限速参数。下载内置 3 次重试,偶发中断会自动续,不必手动干预。
Q:WSL 里能用吗?可以,WSL 里它就是一个 Linux 程序:凭据走 libsecret,状态目录支持XDG_STATE_HOME/XDG_DATA_HOME,命令行与原生 Linux 一致。
Q:怎么只下某个旧版本?list-versions拿到目标版本的 external version ID,下载时加--external-version-id指定即可。
Q:输出是纯文本,想给脚本消费?加全局参数--format json(可选text/json),所有命令的输出都会切换成 JSON;非交互环境记得配--non-interactive。
Q:凭据解锁不方便?部分命令支持--keychain-passphrase参数,用于在脚本里非交互地解锁密钥串。
| 命令 | 作用 | 最简示例 |
|---|---|---|
auth login | 登录 App Store | ipatool auth login |
auth info | 查看当前账号信息 | ipatool auth info |
auth revoke | 吊销本地凭据 | ipatool auth revoke |
search | 搜索应用 | ipatool search "微信" --limit 5 |
list-versions | 列出可下载版本 | ipatool list-versions -b com.tencent.xin |
download | 下载 IPA / pkg | ipatool download -b com.tencent.xin -o app.ipa |
purchase | 获取应用授权 | ipatool purchase -b com.tencent.xin |
list-purchases | 列出已购应用 | ipatool list-purchases |
ipatool 把「从 App Store 拿安装包」这件跨平台麻烦事压成了一条命令,装好、登录、拉包,三步就能进日常工作流。 命令拿不准时,随时用ipatool <命令> --help查参数,比翻文档快。
【免费下载链接】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),仅供参考