Charles + iTunes 抓包下载 APP 历史版本

作者: midmirror | 来源:发表于2017-06-17 18:56 被阅读619次

在 AppStore 下载程序时,iOS 系统默认只能下载APP的最新版本。

但是,如果手中有 iOS 7 的设备,在下载一个最低支持 iOS 8.0 或者更高版本的 APP 时会发现,AppStore 会下载一个兼容 iOS 7的历史版本,而不会告知APP 不支持当前系统导致下载失败(前提是这个 Apple ID 购买过这个 APP,否则不会下载兼容的历史版本)。

实际上,AppStore 保存着一个 APP 的所有历史版本,我们可以通过越狱后安装相关的工具,在 AppStore 直接下载历史版本。如果不想越狱的话,可以通过对 Windows/Mac 端的抓包工具对 iTunes 进行抓包,修改网络请求来下载软件的历史版本。

在 Windows 端通过 Fiddler 抓包下载历史 APP 版本的文章已经足够多,这里介绍在 Mac 上通过 Charles 来进行抓包下载。

软件

  • Charles v4.1.2
  • iTunes v12.5.3.17

Charles 安装根证书,并且设置始终信任

  • Help -> SSL Proxying -> Install Charles Root Certificate (或者保存为.cer 双击安装)
  • 在钥匙串中双击证书,打开属性页,设置始终信任

对 iTunes 的下载网络请求设置

  • 任意下载或者更新一个 app,确定开始下载后就可以删除下载(这一步只是为了确认网络请求地址)
  • 在 Sequence 中找到 p28-buy.itunes.apple.com 的请求,右键菜单中选择Enable SSL Proxying(开启 HTTPS 代理),并设置 Breakpoints(断点)
  • 右键 Save Response,可以把所有的 app 版本对应的 id 保存到本地

正式下载

  • 开启断点
  • 在 iTunes 中选择要下载的程序进行下载或更新
  • 开始下载后,等待 Charles 断点
  • 在断点窗口,选择 Edit Request,选择 XML Text
  • 在 XML 文件的 appExtVrsId 节点替换为要下载的 app 版本的 id
  • 关闭断点,点击 Execute 完成下载

相关文章

网友评论

  • 奔跑的鸿:现在itunes不支持app下载了,该方法不可行了,可有应对措施?
    midmirror:没有了,需要的话可以给你传一个旧版 itunes app,我还没升级
  • iOS小学生:下载旧版本?我改天试试
    midmirror:绝对好用

本文标题:Charles + iTunes 抓包下载 APP 历史版本

本文链接:https://www.haomeiwen.com/subject/qmdbqxtx.html