文章目录
  1. 1. 准备工作
  2. 2. 原理
  3. 3. 操作步骤
    1. 3.1. 设置Charles
    2. 3.2. 打开iTunes,搜索要下载的App
    3. 3.3. 点击下载,删除下载
    4. 3.4. 在Charles查找相关请求
    5. 3.5. 重新下载
    6. 3.6. 打断点修改请求
    7. 3.7. 下载安装

有时IOS应用更新至最新版本之后,新版UI风格、使用习惯、功能不喜欢,但又不知道如何降级安装旧版本。例如UC浏览器春节前更新版本,因某些原因下架了文件管理、离线视频、微信分享等功能,其App Store评分从四星半降至1星。同步助手曾提供下载App历史版本的功能,但现在也不复存在。

本文将介绍如何使用iTunes下载安装App Store任意版本旧程序。

准备工作

  1. 下载安装iTunes,熟悉使用iTunes的App Store。

  2. 下载安装Charles(官网下载)

原理

通过抓包软件查看App的历史版本ID,通过修改请求下载指定版本App。

操作步骤

设置Charles

打开 Charles,选择菜单栏 -> Help -> SSL Proxying,然后安装SSL证书。详细教程

注意:Charles 即使是安装完证书之后,默认也并不截取 Https 网络通讯的信息,如果你想对截取某个网站上的所有 Https 网络请求,可以在该请求上右击,选择 Enable SSL Proxying

打开iTunes,搜索要下载的App

以 US 为例

点击下载,删除下载

点击 “下载” 按钮,右上角会出现一个箭头

点击箭头展开下载列表;选中正在下载的应用,按2次Delete键即可删除本次下载。

在Charles查找相关请求

找到 p15-buy.itunes.apple.com URL开头为 /WebObjects/MZBuy.woa 的请求,点击选项卡上面的Response,就可以看到返回的相关数据。

搜索找到 softwareVersionExternalIdentifiers,其后一系列数字为该APP版本号。从上往下为该 App 自第一个版本起每个版本在 App Store 中的版本 ID。

可以选择倒数第二个版本下载,如果需要精确下载某版本,可通过以下方式:

请求下载时通过 打断点 修改appExtVrsId,然后查看Response中的 bundleShortVersionString 找到ID对应版本号。

注意:只能挨个打断点修改ID去试,暂时没找到其他方法

重新下载

确认需要下载的版本ID后,复制。例如,下载US应用1.1.0版本的ID为815756613。

在 iTunes 中重新搜索App。

打断点修改请求

切换到Charles,找到对应的请求一级一级展开,在最后一个节点上右键然后选中 Breakpoints

返回 iTunes, 点击下载。

回到Charles后会出现Breakpoints的选项卡,点击请求显示 Edit Request 栏编辑 appExtVrsId 为需要下载的版本 ID。

修改完成之后,点击 Excute 按钮发送请求,进行下载。 收到Response之后Breakpoints会再弹出来一次,直接点Excute通过就行。

注意:下载过程中需要保持 Charles 和 iTunes 一同打开,不可关闭。

下载安装

App下载完毕后,找到.ipa安装包,在常用的软件(PP助手、iTools)中安装。

ipa包的安装路径,可以在iTunes -> 偏好设置 -> 高级 中找到