手贱更新了 App 又想回去?这里有后悔药 | 有用功
我有一个坏习惯:总是在第一时间更新应用。
有时仅是克制不住自己的好奇心,有时也是为了给大家带来最新的体验文。然而所有更新中总会有十有一二让我有些措手不及:迭代后新增加的 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. 将该文件用你常用的文字编辑器打开,浏览文件直到找到连续多行形如 <integer>1234567<integer> 的代码,其中每行代码中的数字便是对应特定历史版本的 Version ID 了,Version ID 大多按照版本的时间顺序排列,我们只需复制目标版本对应的那行数字即可。不过也存在例外的情况,这时我们也只能一一尝试了。
6. 像之前一样右键点击 buyProduct 文件,这一次选择 Edit 并选中右侧的 Text 一栏,将前几行中出现的 Version ID 替换成你剪贴板中的数字,点击 Execute 。下滑右侧页面直到找到 <key>bundleVersion<key> 一行,下一行的数字便是此时具体的版本号啦。如果与期望不符,你可以重复上两步操作,粘贴其他的 Version ID。
7. 再一次右键点击最后一个 buyProduct 文件,这一次选择 Breakpoints。现在我们回到 iTunes,并第三次下载你的目标应用。由于我们之前设置了断点,所以点击下载后 Charles 会自动跳出,这时我们选择右侧顶栏的 Edit Request 以及底栏的 XML Text。再一次替换掉文件前几行中出现的 Version ID,点击 Execute,在弹出的页面中再一次点击 Execute。
8. 耐心等待应用下载完毕后,就可以像往常一样将其同步到手机中了。大功告成后,你会发现一切都是如此的熟悉却又那般激动人心。如果你够恶趣味,你甚至可以观察五六年前的应用在你手机上的运行情况,当然,结果很可能是,惨不忍睹。
不过你或许也意识到了,以上的步骤毕竟略显繁琐,所以在更新前最好还是三思而后行,而这种手段作为「手抖」的补救措施业已足够啦。