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