iPhone 下载旧版本 APP 全过程(详细图文)
前段时间曾哥找到我,说他女儿用的 iPhone 手机更新了一个 APP 后发现很不好用,想回到旧版本,但是好像没有办法,第一,iPhone 的 App 的官方下载通道就只有一个,那就是 App Store;第二,虽然可以通过第三方辅助工具(iTools、PP助手、爱思助手等)导入 ipa 文件进行安装,但是在那个 App 官网上并没有提供旧版本的安装文件下载。怎么办?
其实方法是有的,而且不需要 iPhone 越狱,直接从 App Store 官网渠道下载,神奇吧!但是操作过程有些繁琐,个人认为可能不适合电脑小白,当然你也可以试着操作。本文将介绍如何使用iTunes下载安装App Store任意版本旧程序。技术贴,需要大家耐心阅读,理解实现原理,一步一步操作,不熟悉的话可能需要花费1-2小时的时间。
实现原理
1、iOS软件下载必须使用自己的Apple ID登录itunes,才能在iPhone上安装。
2、通过抓包软件查找App的历史版本ID。
3、通过抓包软件修改下载请求,将请求中最新版本的ID改成历史版本ID,成功下载指定版本App。
操作步骤
主要分为以下三步:
1、下载安装itunes、fiddler,设置fiddler并安装证书。
2、找到想要下载APP版本对应的版本ID。
3、找到版本ID后,修改下载请求,下载安装。
第一步、准备工作
1.1 下载安装itunes、fiddler
下载安装iTunes,熟悉使用iTunes的App Store。
下载安装Fiddler(官网下载、或者百度搜索Fiddler安装、交流群可下载)
Windows 8 以上系统建议安装Fiddler for .NET4,win7也建议安装Fiddler4。
1.2 设置Fiddler
打开 Fiddler,选择菜单栏 -> Tools -> Fiddler Options,在 HTTPS 选项卡中勾选 Decrypt HTTPS traffic,然后重启Fiddler。
1.3 安装Fiddler证书
如果在Fiddler的使用过程中,提示Certificate Error证书错误,可以选择Yes忽略错误或者安装证书,教程请参考附录。
1.4 关于教程图
本文配图均为高清1:1配图,看不清的清点击图片看大图,或再查阅原图。
第二步、查找版本ID
以UC浏览器为例,需要下载10.7.11版本,含有视频缓存下载功能。
2.1 打开iTunes,搜索要下载的App
2.2 点击下载或更新,等右上角出现箭头后删除下载
选中下载按2次Delete键即可删除。(如果不小心下载了,可以点下载或更新上面的图标,刷新页面,等按钮灰置之前,马上点击更新)
2.3 在Fiddler查找相关请求
找到pxx-buy.itunes.apple.com、URL开头为 /WebObjects/MZBuy.woa 的请求,双击请求切换右侧至 Inspectors 选项卡,并点击中间的黄色块(Response is encoded and may need to be decoded before inspection. Click here to transform.)
备注:如果相关https请求表现为Tunnel to(灰色文字),需要检查证书是否成功安装、HTTPS设置是否打开,再不行就下载步骤1.3的版本。
2.4 保存该请求
第3步找到请求后,右键请求 -> Save -> Response -> Response Body。需要注意的是,如果没有点击黄色方块,将会保存一个乱码文件。
2.5 寻找App版本列表
可以拖拽到浏览器中打开该文件,搜索找到 softwareVersionExternalIdentifiers,其后一系列数字为该APP历史版本号。
从上往下为该 App 自第一个版本起每个版本在 App Store 中的版本 ID。
2.6 模拟请求查找版本
将第3步找到的请求,拖拽至Fiddler右侧Composer栏。
在Request Body中找到appExtVrsId位置,编辑右侧数字内容即版本号。版本号从第5步中从后几个id中挑选。如把图中816384552替换成813819687。
最后点击右上角Execute按钮。(如果出现左侧红色图标,则在左下角黑色框输入bpu取消断点)
2.7 确认ID对应的版本号
左侧列表底部找到新请求,点击展开Inspectors页面,点击黄色块。
右侧面板,下面一栏,切换到TextView,搜索bundleShortVersionString,可找到ID对应版本号。
如刚才输入的ID是813819687,查询出对应的版本是10.7.11。如果版本不正确,可重复第6步一次寻找。
最终确认要下载的版本ID,如10.7.11版本要UC的视频缓存功能。
第三步、下载APP
3.1 拦截下载请求
确认需要下载的版本ID后,复制。例如,下载UC浏览器10.7版本的ID为814450049。
在 iTunes 中重新搜索App。
然后切换到Fiddler,清空请求(快捷键CTRL+X),在左下角黑色输入框输入命令打开断点 bpu MZBuy.woa 回车(取消断点为输入bpu)
返回 iTunes, 点击下载或更新。
3.2 修改下载请求
回到 Fiddler 后会出现红色图标的请求,点击请求显示Inspectors栏。
在TextView窗口,找到appExtVrsId 位置,下一行数字及为当前下载的版本ID。
编辑版本 ID 为需要下载的版本 ID,如上面查询到的814450049。
3.3 确认下载
最后点击绿色按钮(Run to Completion)发送请求,进行下载。
下载过程中需要保持 Fiddler 和 iTunes 一同打开,不关闭。
如果长时间下载没反应,先暂停下载,点击Fiddler左下角Capturing取消拦截请求,再继续下载即可。
3.4 下载安装
App下载可在itunes右上角查看进度。
完毕后,切换到应用界面,右键打开下载文件所在文件夹,找到.ipa安装包,在常用的软件(PP助手、iTools)中安装即可。
相关问题
1、Fiddler安装证书
如果在Fiddler的使用过程中,提示Certificate Error证书错误,请选择Yes 或 根据以下步骤安装证书:
Fiddler 菜单栏 > Tools > Fiddler Options > HTTPS 选项卡
点击左下方的 Export Root Certificate to Desktop按钮
桌面上会出现一个“FiddlerRoot.cer”文件,右键安装证书
安装证书的位置选择第二项,并点击“浏览”,选择“信任的根证书存储”。
2、iTunes打开白屏怎么办?
Fiddler和itunes同时打开的情况下,可能会搜索不出来,页面白屏。
(1)把Fiddler设置成不拦截请求:点击Fiddler左下角Capturing按钮,按钮消失即为不拦截。
(2)在itunes进行搜索。
(3)点击Fiddler左下角Capturing按钮,将拦截按钮显示,即可正常看到请求。
3、Fiddler找不到itunes的请求怎么办?
一直不出现itunes的请求的话,可能版本不对或者证书没装上,建议安装Fiddler4,然后重装证书,应该可以出现。
4、不能创建证书提示fiddler2 unable to generate certificate怎么办?
在创建证书的时候,如果提示fiddler2 unable to generate certificate,无法导出安装证书,将会导致https的包无法解开。
比较简单的解决方案是安装下载这个程序 fiddlercertmaker。
https的请求由灰变蓝即可。
具体提示如下:
--------------------------- Unable to Generate Certificate --------------------------- Creation of the interception certificate failed. makecert.exe returned -1. Results from C:\Program Files\Fiddler2\MakeCert.exe -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -eku 1.3.6.1.5.5.7.3.1 -r -cy authority -a sha1 Error: Can't create the key of the subject ('JoeSoft') Failed -------------------------------------------
5. 如何关闭Fiddler请求拦截
在开着Fiddler的时候,itunes可能会出现提示重新登录或者登录失败的情况(连不上服务器),解决方案为将Fiddler取消请求拦截,itunes登录之后,Fiddler再进行请求拦截。具体切换操作如下:点击Fiddler左下角Capturing按钮即可,再点击即可打开。