看过一篇关于使用fiddler
工具进行抓包,通过iTunes
下载旧版本App的文章,但是这是windows
平台下的。文章链接。如果是mac
平台呢?
fiddler
只有windows
版本,这只是一个抓包工具。那么mac
下,可以通过Charles
进行抓包拦截,然后下载。
步骤:
打开
Charles
,注意:相关配置需要弄好,比如root证书什么的打开
iTunes
,挑选任意一个app,进行下载,但app开始下载时,可以选择暂停,返回Charles
查看在
Charles
一大堆数据上,可以过滤处itunes
。找到类似pX-bug.itunes.apple.com
(X为数字)的,Enable SSL Proxying
。然后重新第二步操作,你会发现
Structure
下面,对应的px-buy.itunes.apple.com
下面多出了一些内容。WebObjects/MZBuy.woa/wa/buyProduct
,右键对其进行添加breakpoints
。,点击content
,查看其XML
内容。注意:此处需要右键 ->Enable SSL Proxying
在上述内容中,你需要找到一个
softwareVersionExternalIdentifiers
的字段,其中数组array
所包含的就是该app的版本记录吧。这时候,可以选择对该链接进行保存,事实上主要是为了记住这些版本记录。如下图。
删除
iTunes
中正在下载的app,重新下载该app。此时,Charles
中的breakpoints
将被激活,前往Charles
修改在
Charles
中,此时看到所打断点的内容。Edit Request
->XML Text
。会看到appExtVrsId
字段。其中的内容就是上述5.
中看到的softwareVersionExternalIdentifiers
的内容。此时需要将其替换成 任何一个你想要的版本,也就是其他的id。一个版本可能会对应多个id,所以具体还是得逐个尝试才能得到相应的版本。一般来说,appExtVrsId
中默认的值都是最新版本的id。修改完毕后,Execute
。返回
iTunes
查看当前下载,等候完毕。完毕。如果提示出现下载插图什么的乱七八糟Error
,那么就重新下载,试多几次就好了。
其实,说到底就是利用Charles
,进行拦截修改,进而达成目标。