一、软件准备

1、旧版本 iTunes
1.IPSW Downloads:https://ipsw.me/
2.百度网盘链接:
https://pan.baidu.com/s/1PO9Z12o-rqZ_JG68zRqEnA 提取码:fe1v

2、抓包工具 Charles Proxy
1.Charles官网链接:https://www.charlesproxy.com/
2.百度网盘链接:
https://pan.baidu.com/s/1DD6AkUhEcD2LRWYqprUZUQ 提取码:e0p8
破解方法
1.安装后先打开Charles一次(Windows版可以忽略此步骤)
2.使用破解文件charles.jar,替换掉原文件夹里的charles.jar
Mac: /Applications/Charles.app/Contents/Java/charles.jar
Windows: C:\Program Files\Charles\lib\charles.jar

二、设置Charles Proxy

1、打开 Charles,选择菜单栏 -> Help -> SSL Proxying -> Install Charles Root Certificate。

2、在证书窗口中点击【安装证书】,点击【下一步】,然后选择【将所有的证书都放入下列存储】,再点【浏览】,选择【受信任的根证书颁发机构】,然后点【确定】,【下一步】和【完成】即可。

三、下载APP

1、打开iTunes,在App Store中搜索你想要下载的App,以百度贴吧为例。

2、点击下载或更新,等右上角出现箭头后删除下载(选中下载按2次Delete键即可删除)。

3、在Charles查找相关请求

找到http://pxx-buy.itunes.apple.com、url开头为 /WebObjects/MZBuy.woa 的请求。右侧面板中,Contents里面的数字是App的版本ID,XML Text里面的数字是App的所有历史版本ID。

4、给下载请求添加断点

选择http://pxx-buy.itunes.apple.com,点击右键选择【Breakpoints】,此时红点旁的灰色六边形会变为红色。

5、返回iTunes重新下载App,此时Charles会弹出窗口,在 Edit Request -> XML Test 中,需要修改版本ID【830816861】。

6、使用App历史版本查询工具,查询版本号对应的版本ID

在线查询苹果应用历史版本,https://tools.lancely.tech/apple/app-search

可以看到【6.9.6】后面的【812258441】就是对应的版本ID。

7、回到Charles中,替换掉对应的版本ID,再点击【Execute】继续。还会有一个弹窗出来,继续点击【Execute】即可。

在下载完成的时候还会有两次弹窗,依旧点击【Execute】即可。

此时可以看到iTunes开始下载App,可以看到6.9.6版本的App大小,相对于10.1.0版本的177M小了很多。

下载完成后,在【应用】的【资料库】中,右键点击App选择【显示简介】,可以查看到App的版本信息。

四、安装App

1、通过iTunes同步安装,需要登录Apple ID,对电脑进行授权,如果无法完成授权或无法同步安装,可以使用第三方助手安装。

2、使用第三方助手安装,如爱思助手,PP助手等。

在我的电脑中找到下好的安装包。

打开爱思助手,点击【下载中心】,将安装包拖入其中,再点击安装即可。

五、参考文章

1、5分钟教你安装IOS旧版APP,让我们回到最初的感觉...,https://zhuanlan.zhihu.com/p/42947889

2、利用 Charles Proxy 下载旧版本 iOS App,https://sspai.com/post/36122

利用 Charles Proxy 下载旧版本 iOS App的更多相关文章

  1. IOS如何下载旧版本应用APP

    前言 文章相对来说比较复杂,特别是查找版本ID对应的步骤,这里推荐使用另一种方案,操作起来更简单. 本文介绍如何使用Workflow及Fiddler下载IOS旧版本APP应用. 实现原理 通过Work ...

  2. 对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App)

    对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App) 实验目的:对比使用Charles和Fiddler两个工具 实验对象:车易通App,易销通App 实验结果 ...

  3. CRM2013版本 IOS APP 说明(IPhone、IPad)

    CRM2013版本 IOS APP 说明(IPhone.IPad) IPhone版本 首页 CRM APP在登录时输入账号信息,可以进行首面.其首页显示内容可以在CRM后台设置. 系统默认显示:Pho ...

  4. 如何在苹果官网下载旧版本的Xcode

    如何在苹果官网下载旧版本的Xcode 前段时间XcodeGhost事件让很多应用中招,不乏一些知名的互联网公司开发的应用.事件的起因是开发者使用了非官方的Xcode,这些Xcode带有xcodegho ...

  5. 下载旧版本的JDK

    下载旧版本的JDK 有的时候我们需要去下载旧版本的JDK,但是进入Oracle官网,显示的总是新版的JDK,这里告诉大家怎么样去下载旧版本的JDK. 首先去JavaSE的 下载界面 拉到最下面,找到这 ...

  6. 下载旧版本的NDK

    在官网找不到旧版本的下载地址,只能取巧了. 写该随笔的时候,NDK最新的版本是r12,见 https://developer.android.com/ndk/downloads/index.html# ...

  7. 解决 Android SDK Manager不能下载旧版本的sdk的问题

    解决无法使用Android SDK  Manager下载SDK开发包的解决办法. 当我们在官网下载google的集成ADT,也就是adt-bundle-linux-x86.zip开发包,进行解压, 打 ...

  8. 如何下载旧版本的MySQL

    可能存在这样的场景,比如一些老系统需要使用MySQL 5.5版本才能运行,其余的不行. 1.登录下载站点 https://dev.mysql.com/downloads/mysql/ 此时的最新版本为 ...

  9. 教你如何快速下载旧版本的Firefox浏览器

    http://blog.csdn.net/gh0st007/article/details/18937421 更新后的ff使用过程中经常出现卡顿的现象,之前并没有出现,于是想找老版本的ff安装一下.发 ...

随机推荐

  1. vue 通过自定义指令实现 置顶操作;

    项目需求:要求当前项目每个页面滑到超出一屏的距离时,出现 backTop 按钮,点击则回到最顶端:俗称置顶操作: 因为涉及到的页面较多,每个页面都加肯定显得重复累赘,最终想到了 Vue 的自定义指令  ...

  2. Android studio 远程服务调用

    https://blog.csdn.net/bond_zhe/article/details/50971021

  3. MIPI-Layout说明(转载)

    转载于:http://www.ccm99.com/thread-3713-1-1.html 前言:随着新的总线协议不断提高信号速率,如今的PCB 设计人员需要充分理解高速布线的要求并控制PCB 走线的 ...

  4. node概述

    1.什么是node:“一个搭建在Chrome JavaScript运行时 上的平台,用于构建高速.可伸缩的网络程序.Node.js采用的事件驱动.非阻塞I/O模型,使它 既轻量又高效,并成为构建运行在 ...

  5. 极致21点开发DAY4

    完成的内容:1.修改上一篇博文中的Bug  2.完成任务窗口逻辑 using System; using System.Collections.Generic; using UnityEngine; ...

  6. SQL kaggle learn with as excercise

    rides_per_year_query = """ SELECT EXTRACT(YEAR FROM trip_start_timestamp) AS year ,CO ...

  7. JAVA EE 第二周(XML简述以及web请求的过程)

    一. 对于XML,我分别从以下几个方面来简述: 1.定义: XML是一种可扩展的标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. (可扩展标记语言:可扩展标记语言是一 ...

  8. 服务器被疑似挖矿程序植入,发现以及解决过程(建议所有使用sonatype/nexus3的用户清查一下)

    此次服务器被植入挖矿程序发现起来较为巧合,首先是上周三开始,我通过sonatype/nexus3搭建的仓库间歇性崩溃,但是每次重新start一下也能直接使用所以没有彻底清查,去docker logs里 ...

  9. AtomicStampedReference源码分析

    public class Snippet { //修改的是AtomicStampedReference对象里面的值了. public static void main(String[] args) { ...

  10. JDBC中常用的接口

    JDBC常用的接口DriverManager 驱动管理器获得数据库链接 Connection 数据库链接接口 Statement 语句接口,用来静态操作SQL语句 PreparedStatement ...