英国论坛
我有一个坏习惯:总是在第一时间更新应用。
有时仅是克制不住自己的好奇心,有时也是为了给大家带来最新的体验文。然而所有更新中总会有十有一二让我有些措手不及:迭代后新增加的 bug 可能几周后才能得到修复,而某些应用的「大变脸」则会让我彻底失去继续使用下去的信心。
喜欢折腾应用的你相信也吃了不少这种苦头,而这篇「有用功」便为大家介绍一种方法,让你无需越狱,只需八步便可纵情滚回到已购应用的任何一个历史版本。
本文中提到的方法来源于 Reddit,可查看原帖 http://t.cn/Rbm1Yoh。另外此方法需在电脑端使用 iTunes 以及抓包应用 Charles,Charles 的官方版本提供 30 天免费试用,下载地址http://t.cn/Rbm1RaX。
打开 Charles 再进入 iTunes 中应用的详情页面(这里以 PCalc 为例),你会发现 Charles 的 Structure 列表已经开始出现一些乱七八糟的链接了(没反应的话请检查你的网络代理是否处于关闭状态)。此时点击应用的下载按钮,开始下载后点击右上角的下载图标,选 中其中的应用按下键盘上的Delete,以取消下载过程。在 Structure 列表中找到包含http://pxx-buy.itunes.apple.com的一行,右键点击后选择弹出列表的Enable SSL Proxying。刷新应用详情页面,再次点击下载,在弹出窗口中选择 Continue 后再次取消下载。回到 Charles,你会发现列表中第二次出现http://xxx-buy.itunes.apple.com的身影。连续点击左侧的三角形以展开其子文档夹,直到选中最后的buyProduct文档。选中后点击右侧页面上方的Response一栏,之后右键点击buyProduct文档,选择Export,将文档格式指定为 XML Summary File,并保存在你的桌面上。将该文档用你常用的文本编辑器打开,浏览文档直到找到连续多行形如1234567的代码,其中每行代码中的数字便是对应特定历史版本的 Version ID 了,Version ID 大多按照版本的时间顺序排列,我们只需复制目标版本对应的那行数字即可。不过也存在例外的情况,这时我们也只能一一尝试了。像之前一样右键点击buyProduct文档,这一次选择Edit并选中右侧的Text一栏,将前几行中出现的 Version ID 替换成你剪贴板中的数字,点击Execute。下滑右侧页面直到找到bundleVersion一行,下一行的数字便是此时具体的版本号啦。如果与期望不符,你可以重复上两步操作,粘贴其他的 Version ID。再一次右键点击最后一个buyProduct文档,这一次选择Breakpoints。现在我们回到 iTunes,并第三次下载你的目标应用。由于我们之前设置了断点,所以点击下载后 Charles 会自动跳出,这时我们选择右侧顶栏的Edit Request以及底栏的XML Text。再一次替换掉文档前几行中出现的 Version ID,点击Execute,在弹出的页面中再一次点击Execute。耐心等待应用下载完毕后,就可以像往常一样将其同步到手机中了。大功告成后,你会发现一切都是如此的熟悉却又那般激动人心。如果你够恶趣味,你甚至可以观察五六年前的应用在你手机上的运行情况,当然,结果很可能是,惨不忍睹。不过你或许也意识到了,以上的步骤毕竟略显繁琐,所以在更新前最好还是三思而后行,而这种手段作为「手抖」的补救措施业已足够啦。