IOS如何下载旧版本应用

Posted by SenYi Blog on 2019-05-26

前言

有时iOS应用更新至最新版本之后,新版UI风格、使用习惯、功能不喜欢,但又不知道如何降级安装旧版本。例如UC浏览器2016年春节前更新版本,因某些原因下架了文件管理、离线视频、微信分享等功能,其App Store评分从四星半降至1星。

同步助手曾提供下载App历史版本的功能,但现在也不复存在。

本文将介绍如何使用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

  1. 下载安装iTunes,熟悉使用iTunes的App Store。
  2. 下载安装Fiddler( 官网下载 、或者 百度搜索Fiddler安装 、交流群可下载)
  3. 或者使用本站提供的版本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右上角查看进度。

完毕后,切换到应用界面,右键打开下载文件所在文件夹,找到 .ip a安装包,在常用的软件(PP助手、iTools)中安装即可。

本技术教程需要耐心花时间去操作,如果你已成功下载,恭喜你。

附录

1. 部分APP版本ID及介绍

APP版本版本ID简介
UC浏览器 V10.7814450049能离线视频缓存
QQ浏览器 V6.1.1813125939能缓存视频
QQ空间 V5.1.1811660738动态浏览无广告
百度云 V6.6.0812649628支持解压文件,支持视频接入WIFI自动上传
百度贴吧 V6.9.6814101616能本吧内搜索
支付宝 V9.2813710368越狱也能使用指纹支付
网易新闻 V3.6.216708686广告少
爱奇艺 V5.7.1759732747无片头广告
蜻蜓FM V4.7.6813883538无音频广告
追书神器 V2.23.1812773310依然有广告,不需要追书币追根模式健在
酷狗音乐 V3.9.4276022645纯粹的播放器
115网盘 V6.0.0816723879支持添加离线下载

2. Fiddler安装证书

如果在Fiddler的使用过程中,提示 Certificate Error 证书错误,请选择Yes 或 根据以下步骤安装证书:

  1. Fiddler 菜单栏 > Tools > Fiddler Options > HTTPS 选项卡
  2. 点击左下方的 Export Root Certificate to Desktop按钮
  3. 桌面上会出现一个“FiddlerRoot.cer”文件,右键安装证书
  4. 安装证书的位置选择第二项,并点击“浏览”,选择“信任的根证书存储”。


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的请求由灰变蓝即可。

具体提示如下:

---------------------------
Unableto GenerateCertificate
---------------------------
Creationoftheinterceptioncertificatefailed.
makecert.exereturned -1.
Resultsfrom C:\ProgramFiles\Fiddler2\MakeCert.exe -ssmy -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 -cyauthority -a
sha1
Error: Can't create the key of the subject ('JoeSoft')
Failed
-------------------------------------------

6. 如何关闭Fiddler请求拦截

在开着Fiddler的时候,itunes可能会出现提示重新登录或者登录失败的情况(连不上服务器),解决方案为将Fiddler取消请求拦截,itunes登录之后,Fiddler再进行请求拦截。具体切换操作如下:

点击Fiddler左下角Capturing按钮即可,再点击即可打开