看过一篇关于使用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,进行拦截修改,进而达成目标。