从搜索到下载:用 IPATool 命令行工具三步拿下 iOS 应用包
2026/9/17 2:58:36 网站建设 项目流程

从搜索到下载:用 IPATool 命令行工具三步拿下 iOS 应用包

【免费下载链接】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 是一个用 Go 编写的命令行工具,直接对接 App Store 官方协议:搜索 iPhone、iPad、Apple TV、Vision 与 macOS 平台的应用,把.ipa.pkg应用包下载到本地。适合需要抓取应用包做分析、兼容性测试或归档的开发者与安全研究者。准备工作只有一个:开通双重认证的 Apple ID。

开始前确认三件事

  • Go 1.25 以上环境(或直接使用 Releases 的预编译产物)
  • 一个能正常登录 App Store 的 Apple ID
  • 该 Apple ID 已开启双重认证,否则登录会被卡住

从源码编译到首次登录

先跑通安装和认证,后面所有功能都依赖这次登录。

git clone https://gitcode.com/GitHub_Trending/ip/ipatool cd ipatool go build -o ipatool

登录时输入邮箱,密码交互输入,开启双重认证的账号需要再填一次验证码。

./ipatool auth login --email <Apple ID邮箱> ./ipatool auth info

auth info能打印出账号姓名和邮箱,说明认证链路通了。凭据会被写进系统钥匙串,之后每条命令自动携带,不需要反复登录。

核心能力逐个拆

搜索:先拿到应用 ID

./ipatool search "微信" --platform iphone --limit 10
  • 默认返回 5 条结果,--limit可调整,visionOS 平台上限 12
  • 输出包含应用 ID、名称、开发商,ID 是后续所有命令的入口
  • --platform支持iphoneipadappletvvisionosmacos

下载:一条命令落盘

./ipatool download --app-id <应用ID> --output ./downloads/
  • --output传目录时,工具按"应用+版本"自动生成包名存进去;传完整文件路径则原样保存
  • 不知道 ID 但知道包名时,用--bundle-identifier <包名>替代--app-id
  • --platform macos走 macOS 流程,产出.pkg而不是.ipa

历史版本:老版本也能抓

ipatool list-versions --app-id <应用ID>会返回一串版本标识(external version id)。把它传给download --external-version-id <标识>,就能下载对应旧版本;不传则默认拉最新版。get-version-metadata可以把标识解析回具体版本号和元数据。

购买列表:账号里有什么

ipatool list-purchases --page 1 --max-results 20按购买时间倒序列出当前账号已拥有的应用,做批量下载前用它核对一遍最省事。

内部设计一瞥

整体是清晰的三层结构:cmd解析参数并调度,pkg/appstore编排登录、取许可证、下载这些商店流程,internal/sap负责签名与 macOS 包的封装,底下还有两个公共设施。

  • cmd/ — auth、search、download 等全部子命令定义
  • pkg/appstore/ — App Store 协议交互与下载逻辑
  • internal/sap/ — 签名流程与 macOS.pkg生成
  • pkg/keychain/ — 凭据在系统钥匙串中的存取
  • pkg/http/ — HTTP 客户端、Cookie 维持与请求封装

一个完整工作流:归档三个历史版本

场景:某应用要对比三个版本的行为差异,需要把旧版本全部落到本地。先用list-versions拿到标识列表,再写个循环逐版下载,已存在的目录直接跳过。

for vid in <标识1> <标识2> <标识3>; do if [ ! -d "./downloads/$vid" ]; then mkdir -p "./downloads/$vid" ./ipatool download --app-id <应用ID> --external-version-id "$vid" \ --output "./downloads/$vid/" --non-interactive --format json fi done

--non-interactive让命令不进交互模式,--format json把结果变成结构化输出,方便脚本判断成败。失败的应用会原样报错,其余版本继续跑,不用整批重来。

踩坑与排错

现象:登录输完密码后要求输入 2FA 验证码。原因:Apple ID 开启了双重认证,Apple 对新设备登录要求人工确认。解法:手动跑时按提示输入手机上的验证码;脚本环境里加--auth-code <验证码>重跑一次。

现象:下载时报错,提示该应用需要先获取许可证。原因:账号下没有这个应用的授权(常见于应用曾从购买列表移除)。解法:先跑purchase --app-id <应用ID> --platform iphone取授权,或在download命令上加--purchase让工具自动补取。

现象:隔了一段时间没登录,命令却报认证失败。原因:凭据里的密码令牌有有效期,过期后请求被拒。解法:重跑auth logindownloadlist-versions内部带重试,检测到令牌过期会自动重新登录,最多试 3 次,多数情况等一等就好。

现象--output指了个目录,文件却"消失"了。原因:路径是目录时,包会按工具生成的文件名存进目录里。解法:进目录找文件,或直接传完整文件路径指定落盘位置。

使用边界

IPATool 的定位是帮你拿到自己拥有或有权访问的应用包。使用它受 Apple 服务条款与开发者协议约束,不要用它绕过授权或二次分发付费应用。

适合谁

做 iOS 兼容性测试、应用安全分析、应用归档的人可以试试 IPATool。核心链路就三句:auth login登录,search拿 ID,download拿包。想深入看协议细节,直接读 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),仅供参考

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

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

立即咨询