前言
有时IOS应用更新至最新版本之后,新版UI风格、使用习惯、功能不喜欢,但又不知道如何降级安装旧版本。例如UC浏览器2016年春节前更新版本,因某些原因下架了文件管理、离线视频、微信分享等功能,其App Store评分从四星半降至1星。
同步助手曾提供下载App历史版本的功能,但现在也不复存在。
本文将介绍如何使用iTunes下载安装App Store任意版本旧程序。技术贴,需要大家耐心阅读,理解实现原理,一步一步操作,不熟悉的话可能需要花费1-2小时的时间。
实现原理
- IOS软件下载必须使用自己的Apple ID登录itunes,才能在iPhone上安装
- 通过抓包软件查找App的历史版本ID
- 通过抓包软件修改下载请求,将请求中最新版本的ID改成历史版本ID,成功下载指定版本App
操作步骤
主要分为以下三步:
- 下载安装itunes、fiddler,设置fiddler并安装证书
- 找到想要下载APP版本对应的版本ID
- 找到版本ID后,修改下载请求,下载安装
第一步、准备工作
1.1 下载安装itunes、fiddler
- 下载安装iTunes,熟悉使用iTunes的App Store。
- 下载安装Fiddler(官网下载、或者百度搜索Fiddler安装、交流群可下载)
- 或者使用本站提供的版本Fiddler4 v4.6.0.1,推荐下载此版本
win8以上系统建议安装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. 部分APP版本ID及介绍
APP版本 | 版本ID | 简介 |
---|---|---|
UC浏览器 V10.7 | 814450049 | 能离线视频缓存 |
QQ浏览器 V6.1.1 | 813125939 | 能缓存视频 |
QQ空间 V5.1.1 | 811660738 | 动态浏览无广告 |
百度云 V6.6.0 | 812649628 | 支持解压文件,支持视频接入WIFI自动上传 |
百度贴吧 V6.9.6 | 814101616 | 能本吧内搜索 |
支付宝 V9.2 | 813710368 | 越狱也能使用指纹支付 |
网易新闻 V3.6.2 | 16708686 | 广告少 |
爱奇艺 V5.7.1 | 759732747 | 无片头广告(目前已不能下载,官方不放出旧版本) |
蜻蜓FM V4.7.6 | 813883538 | 无音频广告 |
追书神器 V2.23.1 | 812773310 | 依然有广告,不需要追书币追根模式健在 |
酷狗音乐 V3.9.4 | 276022645 | 纯粹的播放器 |
115网盘 V6.0.0 | 816723879 | 支持添加离线下载 |
2. Fiddler安装证书
如果在Fiddler的使用过程中,提示Certificate Error证书错误,请选择Yes 或 根据以下步骤安装证书:
- Fiddler 菜单栏 > Tools > Fiddler Options > HTTPS 选项卡
- 点击左下方的 Export Root Certificate to Desktop按钮
- 桌面上会出现一个“FiddlerRoot.cer”文件,右键安装证书
- 安装证书的位置选择第二项,并点击“浏览”,选择“信任的根证书存储”。
3. itunes打开白屏怎么办?
Fiddler和itunes同时打开的情况下,可能会搜索不出来,页面白屏。
- 把Fiddler设置成不拦截请求:点击Fiddler左下角Capturing按钮,按钮消失即为不拦截
- 在itunes进行搜索
- 点击Fiddler左下角Capturing按钮,将拦截按钮显示,即可正常看到请求
4. Fiddler找不到itunes的请求怎么办?
一直不出现itunes的请求的话,可能版本不对或者证书没装上,建议安装Fiddler4,然后重装证书,应该可以出现。
5. 不能创建证书提示fiddler2 unable to generate certificate怎么办?
在创建证书的时候,如果提示fiddler2 unable to generate certificate,无法导出安装证书,将会导致https的包无法解开。
比较简单的解决方案是安装下载这个程序 fiddlercertmaker。
https的请求由灰变蓝即可。
具体提示如下:
1 2 3 4 5 6 7 8 9 10 11 12 |
--------------------------- 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 ------------------------------------------- |
6. 如何关闭Fiddler请求拦截
在开着Fiddler的时候,itunes可能会出现提示重新登录或者登录失败的情况(连不上服务器),解决方案为将Fiddler取消请求拦截,itunes登录之后,Fiddler再进行请求拦截。具体切换操作如下:
点击Fiddler左下角Capturing按钮即可,再点击即可打开
7. UC浏览器精彩评论
交流群
如果以上步骤有不了解或者不成功的,请加IOS旧版本APP下载交流群 528490657
(下载旧版本APP需要登录自己的Apple ID进行下载,所以只能自己学习操作;如有问题请截图并注明步骤在群里提问)
(QQ扫码)
成功下载的小伙伴,留言打个卡好嘛?
炒鸡感谢!
楼主,我在测试下载网易云音乐旧版本时候出错了,好像是不让下载旧的,但是我有这刚需,因为我的iOS9.3.3不兼容新版本。。蓝瘦,香菇 发不了图,加QQ吧、 962076337 ^_^
有QQ群呢,看文章
大家有遇到问题的,可以在关于&留言页面 http://www.xuanfengge.com/about-message ,找到微博/QQ,带上截图私信
你好,请问为什么我在第7步重新下载时并没有红色图标的请求呢。谢谢 版本不一样呢
在左下角黑色输入框输入 bpu MZBuy.woa,再重新下载
开启了Fiddler打开itunes商店无法显示按教程安装了证书也还是不行。我用Fiddler2
能截个图吗?Fiddler收到的灰色请求xxx:443?
我的也是安装了证书也不行
过来看看你的博客,希望每天都更新一些文章。
你好,请问为什么我在第7步重新下载时并没有红色图标的请求呢。谢谢
非常感谢你的教程已经成功下载旧版APP
哈哈哈哈,一定要评论一定要评论,这个可帮了我大忙了。说说我的情况吧,5月底的时候,我通过 iTunes 连接 iPhone (IOS 9.3.2,暂时无法越狱),通过文件共享功能向爱奇艺的 APP (版本7.4)拷贝了许多的资料。后来在 6 月初的时候,爱奇艺进行的升级(7.5),取消了文件共享这一功能,直接导致我之前拷贝进去的资料无法拷出来。这么尴尬的问题都让我遇到了我也认了,然后我打爱奇艺电话,问他们怎么可以把东西拷出来,答案是没办法。然后我问,为什么做这么大的改动,在更新日志里面没有任何说明,答案是,不知道。然后试了各种办法都不行,直到遇到了这个帖子。现在东西已经在往外拷了。谢谢,谢谢,非常感谢。
当时也是试了好久,降回旧版后身心舒畅 不过APP取消这些功能也迫不得已的
请教一下,这样抓包下载和用一些同步推/PP助手等下载的APP一样么?会不会闪退?
还有个办法查看版本,从APPstore中查看版本更新记录,一个记录对应一个版本号,想要下载哪个版本就倒着数就行了,这样可以根据更新内容下载自己想要的旧版本app
可以
已转载
感觉有点麻烦!还是越狱了方便,一个插件就可以了。
没越狱过额~
有点麻烦 一般人 没这耐性