手賤更新了 App 又想回去?這裏有後悔藥 | 有用功

愛範兒 於 28/01/2016 發表 收藏文章

我有一個壞習慣:總是在第一時間更新應用。
有時僅是剋制不住自己的好奇心,有時也是為了給大家帶來最新的體驗文。然而所有更新中總會有十有一二讓我有些措手不及:迭代後新增加的 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. 耐心等待應用下載完畢後,就可以像往常一樣將其同步到手機中了。大功告成後,你會發現一切都是如此的熟悉卻又那般激動人心。如果你夠惡趣味,你甚至可以觀察五六年前的應用在你手機上的運行情況,當然,結果很可能是,慘不忍睹。


不過你或許也意識到了,以上的步驟畢竟略顯繁瑣,所以在更新前最好還是三思而後行,而這種手段作為「手抖」的補救措施業已足夠啦。


資料來源:愛範兒(ifanr)
作者/編輯:劉志鵬

留言


請按此登錄後留言。未成為會員? 立即註冊
    快捷鍵:←
    快捷鍵:→