iOS如何下载旧版本应用
有时IOS应用更新至最新版本之后,新版UI风格、使用习惯、功能不喜欢,但又不知道如何降级安装旧版本。例如UC浏览器春节前更新版本,因某些原因下架了文件管理、离线视频、微信分享等功能,其App Store评分从四星半降至1星。同步助手曾提供下载App历史版本的功能,但现在也不复存在。
本文将介绍如何使用iTunes下载安装App Store任意版本旧程序。
准备工作
原理
通过抓包软件查看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 -> 偏好设置 -> 高级 中找到