本文由 简悦 SimpRead 转码, 原文地址 www.jianshu.com
自己总结的方法
https://www.lanzoux.com/i1BaVhg2m7e
下载上面的这个工具,iOS旧版应用下载;
打开这个软件,输入软件名,找到想要下载的版本,就开始拦截请求了。这个时候,打开window版本的itunes软件,版本是12.6.5.3;这个版本的iTunes有应用选项,可以搜索App Store的软件。其它版本的iTunes去掉这个功能了。
在iTunes中搜索微信,点击开始下载,就是我们拦截到的这个版本号。
如果下载慢,点击,停止拦截;然后在iTunes右上角有下载按钮,选择暂停,再点继续下载。
下载完成之后在资料库中,是个ipa文件,我在iTunes中无法安装到手机里。所以,找到这个ipa文件,通过爱思助手安装到手机上即可。
window iTunes12.6.5.3 版本下载:
链接: https://pan.baidu.com/s/1v80Kj-P0Udo_e8A0l_e8Tg 提取码: p8c6
如果之前安装了老版本的itunes,请到控制面板把所有相关的软件都卸载,需要卸载的内容如下:
卸载完成后进行安装,并打开,如果提示“iTunes Library.itl”错误,则直接把这个文件重命名或者转移到其他文件夹,这个文件在:C:\Users\你的用户名\Music\iTunes\iTunes Library.itl。
我的电脑在这个位置:/Users/用户名/Music/iTunes/iTunes Library.itl
打开软件后登录帐号:在菜单栏:账户 - 登录。(对于开启了二次验证的id,需要输入验证码)
简介
最近项目上需要重现 app 升级所导致的 bug,所以需要下载上一个版本的 ipa 文件。
由于 appstore 并不直接开放旧版本软件的下载,网上流行的工具多数也都只适用于热门 app,我们的 app 上线不久且仅面向机构内部,所以网上流行的方法并不能解决。对于热衷于爬虫开发的我来说,今天必须研究一下,所幸功夫不负有心人,问题解决~
对于热门 app 的历史版本,可以使用的方式有:
- 爱思助手
- 52pojie 大神开发的软件,地址:https://www.52pojie.cn/thread-1114145-1-1.html
- 同样来自 52pojie,但是这个我没有实际测试,地址:https://www.52pojie.cn/thread-742414-1-1.html
以上三种方法,并不适用于我们的 app。
正题开始:
所需要的软件:
- 最后一个支持下载 app 的 itunes(官网地址,放心使用):https://secure-appldnld.apple.com/itunes12/091-87819-20180912-69177170-B085-11E8-B6AB-C1D03409AD2A6/iTunes64Setup.exe
- 抓包工具:fiddler 或者 charles 都行,我用的是 charles4.2.7(软件收费问题自行百度搜索)
每一张图的下面,我都编写了说明文字,请仔细参考。
安装 itunes 并登录
如果之前安装了老版本的 itunes,请到控制面板把所有相关的软件都卸载,需要卸载的内容如下:
卸载完成后进行安装,并打开,如果提示 “iTunes Library.itl” 错误,则直接把这个文件重命名或者转移到其他文件夹,这个文件在:C:\Users \ 你的用户名 \ Music\iTunes\iTunes Library.itl。打开软件后登录帐号:在菜单栏:账户 - 登录。(对于开启了二次验证的 id,需要输入验证码)
安装 charles
=============
charles 安装好之后,需要安装根证书到系统:
找到目标 app
现在开始,在 itunes 上操作时,所产生的流量都将被 charles 捕获,例如我现在搜索:小米计算器
下面准备开始抓包,首先清空 charles 流量列表(点击左上角的小扫把)
在 itunes 的搜索结果页面,点击对应软件的 “下载” 按钮:
此时 charles 将会产生新的流量,(注意我圈起来的这一行,它是以 p30 开头的,且路径为 xxx/buyProduct,如果是第一次使用 itunes 下载,会弹出一个确认的框,确认操作后这里面将会有多条 p30 开头的内容,仔细点,找到符合下下张图的请求,并点击它):
app 会被下载到:C:\Users \ 你的用户名 \ Music\iTunes\iTunes Media\Mobile Applications,你可以选择保存这个 app 到其他路径(文件格式为 ipa)。
在下面的响应部分中,我们可以发现,这个 app 历史上曾经更新过四个版本(含当前版本),第一条是初始上架的版本,最后一条是最新版本。
下载我们下载上一个版本,那么复制倒数第二个数字:821537436,然后,在上面选中的那一行上点击右键 - 断点:
回到资源库,将刚才下载的小米计算器删除,以便于下载它的旧版本:
此时重新搜索:小米计算器,再次点击下载,此时 charles 会弹出拦截提示,我们需要修改请求内容,然后再提交,当 itunes 里显示的状态 “更新” 时,证明已经下载完成了,修改过程看下面的动画:
查看下载好的旧版本程序,文件路径在:C:\Users \ 你的文件夹 \ Music\iTunes\iTunes Media\Mobile Applications
总结
核心思想就是先通过 fiddler 或者 charles 确认软件的版本号,然后通过 fiddler 或者 charles 的断点功能,修改请求体,达到下载旧版本程序的目的。
由于开启了代理,尤其是关闭了 charles 之后,8888 端口被释放,电脑会上网异常,此时需要回到 internet 选项里进行如下设置:
另外如果先开启了 internet 选项的代理,会导致 itunes 无法登录,也需要先关闭这个代理之后再进行登录。
至于哪一个版本有哪些功能特性,可以直接在手机上的 appstore - 版本记录中查看,需要注意的是 ipa 的文件名和 appstore 上的版本号未必完全一致,但是根据更新顺序来匹配一定是没错的。
Call me SpiderMan~~~