点我下载)
2.iTunes (这个你电脑上一定有)
因为苹果的 APPStore 下载是要通过 https 进行的,所以我们要安装一下 Charles 的 SSL 证书。
Help -> SSL Proxying -> Install Charles Root Certificate
从 iOS 系统升级的方面看,苹果是只能升级不能降级的。在 APP 升级方面也是如此,AppStore 上永远都是显示最新版本的 APP,想下载旧版本,没门!但是有时候因为某些原因我们想下载旧版的 APP,我们应该如果实现呢?去网盘上找脱壳版?NO、NO、NO太不安全了,还是下载 APPStore 上的正版比较好!
1.Charles (传送门 -> 点我下载)
2.iTunes (这个你电脑上一定有)
因为苹果的 APPStore 下载是要通过 https 进行的,所以我们要安装一下 Charles 的 SSL 证书。
Help -> SSL Proxying -> Install Charles Root Certificate
安装完成一定要到钥匙串里面去信任一下。
Launchpad -> 其他 -> 钥匙串访问 -> Charles Proxy Custom Root Certificate
将使用此证书时设置为“始终信任”
我们以下载旧版本的 QQ 为例,打开 iTunes,在 AppStore 中找到 QQ。
打开 Charles,点击下载 QQ ,我们看 Charles 中 https://xxx-buy.itunes.apple.com 的抓包数据。
我们在这个包的返回值中找到 key 值为 softwareVersionExternalIdentifiers 的字段
如图:
这一大串数字是什么呢?这个就是版本的标识。
假如我现在想下载6.6.9版本的 QQ 我可以这样操作。
打开手机上的 AppStore 查看一下 QQ 的版本记录。
如图:
我们看到6.6.9是第四个,我们在抓包的 softwareVersionExternalIdentifiers 参数中找到倒数第四个值821341311,这个就是我们要找到的版本标识。
我们把刚才的关键地址打上断点
把资料库中刚才下载的 QQ 删除掉
再次点击下载 QQ, 此时 Charles 会断点。我们把 Edit Request 中的 appExtVrsId 改为 刚才的值821341311,点击Execute,再次点击Execute,直到断点结束。
下载完毕后,我们去资料库中查看 QQ 。
尴尬了,这个版本是6.7版本的。我们在看看倒数第三个和倒数第五个分别是哪两个版本,我们一探究竟。倒数第三个是6.7.0版本,倒数第五个还是6.7版本,我再往前找,倒数第六个。
原来倒数第六个才是6.6.9版本
也就是6.7这个版本并没有出现在 APPStore 上面。至于为什么,就要问腾讯了。
我们可以通过 iTunes 或者iFunBox把这个6.6.9安装到手机上了。
可见版本标识并不是特别准确,我们想找到对应版本还是要费点功夫的。苹果的这一升级特性有利于维持苹果生态的技术革新,我是比较赞同的。如果每个人都去降级系统,降级软件。那么就会产生碎片化,我想我们程序员也是不希望看到的。