美文网首页程序员
ios app历史版本下载(适用于冷门应用)

ios app历史版本下载(适用于冷门应用)

作者: Deo_Prime | 来源:发表于2020-10-23 16:04 被阅读0次

    最近项目上需要重现app升级所导致的bug,所以需要下载上一个版本的ipa文件。

    由于appstore并不直接开放旧版本软件的下载,网上流行的工具多数也都只适用于热门app,我们的app上线不久且仅面向机构内部,所以网上流行的方法并不能解决。对于热衷于爬虫开发的我来说,今天必须研究一下,所幸功夫不负有心人,问题解决~

    对于热门app的历史版本,可以使用的方式有:

    1. 爱思助手

    2. 52pojie大神开发的软件,地址:https://www.52pojie.cn/thread-1114145-1-1.html

    3. 同样来自52pojie,但是这个我没有实际测试,地址:https://www.52pojie.cn/thread-742414-1-1.html

    以上三种方法,并不适用于我们的app。

    听说有人拿着52pojie的资源收费,不知道原作者知道会有何感想。


    正题开始:

    所需要的软件:

    1. 最后一个支持下载app的itunes(官网地址,放心使用):https://secure-appldnld.apple.com/itunes12/091-87819-20180912-69177170-B085-11E8-B6AB-C1D03409AD2A6/iTunes64Setup.exe

    2. 抓包工具:fiddler或者charles都行,我用的是charles4.2.7(软件收费问题自行百度搜索)

    每一张图的下面,我都编写了说明文字,请仔细参考。

    安装itunes并登录

    如果之前安装了老版本的itunes,请到控制面板把所有相关的软件都卸载,需要卸载的内容如下:

    需要卸载的内容

    卸载完成后进行安装,并打开,如果提示“iTunes Library.itl”错误,则直接把这个文件重命名或者转移到其他文件夹,这个文件在:C:\Users\你的用户名\Music\iTunes\iTunes Library.itl。打开软件后登录帐号:在菜单栏:账户 - 登录。(对于开启了二次验证的id,需要输入验证码)

    安装charles

    charles安装好之后,需要安装根证书到系统:

    安装根证书到操作系统-1 安装根证书到操作系统-2 添加ssl代理支持,这样https内容就可以明文浏览了 打开控制面板 - internet选项 配置代理

    找到目标app

    现在开始,在itunes上操作时,所产生的流量都将被charles捕获,例如我现在搜索:小米计算器

    charles已经可以捕获itunes的流量了

    下面准备开始抓包,首先清空charles流量列表(点击左上角的小扫把)

    清空流量列表

    在itunes的搜索结果页面,点击对应软件的“下载”按钮:

    点击下载按钮

    此时charles将会产生新的流量,(注意我圈起来的这一行,它是以p30开头的,且路径为xxx/buyProduct,如果是第一次使用itunes下载,会弹出一个确认的框,确认操作后这里面将会有多条p30开头的内容,仔细点,找到符合下下张图的请求,并点击它):

    注意我圈起来的这一行,点击它

    app会被下载到:C:\Users\你的用户名\Music\iTunes\iTunes Media\Mobile Applications,你可以选择保存这个app到其他路径(文件格式为ipa)。

    在下面的响应部分中,我们可以发现,这个app历史上曾经更新过四个版本(含当前版本),第一条是初始上架的版本,最后一条是最新版本。

    小米计算器一共上架过4个版本

    下载我们下载上一个版本,那么复制倒数第二个数字:821537436,然后,在上面选中的那一行上点击右键 - 断点:

    为这个请求设置断点

    回到资源库,将刚才下载的小米计算器删除,以便于下载它的旧版本:

    移除已下载内容,准备下载旧版本

    此时重新搜索:小米计算器,再次点击下载,此时charles会弹出拦截提示,我们需要修改请求内容,然后再提交,当itunes里显示的状态“更新”时,证明已经下载完成了,修改过程看下面的动画:

    修改请求内容,并关注itunes里小米计算器的状态是否变为:更新

    查看下载好的旧版本程序,文件路径在:C:\Users\你的文件夹\Music\iTunes\iTunes Media\Mobile Applications

    下载下来的旧版本

    总结

    核心思想就是先通过fiddler或者charles确认软件的版本号,然后通过fiddler或者charles的断点功能,修改请求体,达到下载旧版本程序的目的。

    由于开启了代理,尤其是关闭了charles之后,8888端口被释放,电脑会上网异常,此时需要回到internet选项里进行如下设置:

    取消代理设置

    另外如果先开启了internet选项的代理,会导致itunes无法登录,也需要先关闭这个代理之后再进行登录。

    至于哪一个版本有哪些功能特性,可以直接在手机上的appstore - 版本记录中查看,需要注意的是ipa的文件名和appstore上的版本号未必完全一致,但是根据更新顺序来匹配一定是没错的。

    appstore里的软件版本记录

    Call me SpiderMan~~~

    相关文章

      网友评论

        本文标题:ios app历史版本下载(适用于冷门应用)

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