想法
最近滴滴在 App Store 上架了「新版Uber」 眾所周知潦嘶,這個版本簡直就是老掉牙的 Uber + 滴滴的 UI创南,解壓.ipa 文件伦忠,你甚至可以直接發(fā)現(xiàn)滴滴的 logo,內部文件結構和滴滴自己的 app 幾乎沒有差異…… 而大洋彼岸真正的 Uber 公司卻是發(fā)布了真正的新版 Uber稿辙,不僅界面簡化美觀昆码,同時整合多家互聯(lián)網公司服務,讓你可以在路途看終點附近的餐館邓深,電影院未桥,甚至直接訂票。
我得知 Uber 公司發(fā)布更新后芥备,便立即準備升級冬耿,然而我卻發(fā)現(xiàn) Uber 已經在中國區(qū) App Store 消失,我終于轉而在已購項目下載到了更新萌壳,很遺憾我卻收到了以下提示亦镶。
新版 Uber 已經無法在中國使用,但我發(fā)現(xiàn)我為了升級這個版本丟掉了Uber的老版本袱瓮,而我已經沒有辦法下載老版本了缤骨,難道我真的要像現(xiàn)在每一個還在使用老版本Uber的用戶一樣,收到提示尺借,并升級滴滴版的「新版Uber」嗎绊起?
當然不。接下來這篇文章將告訴你如何下載任意版本的任意iOS App燎斩,即降級虱歪。
請注意蜂绎,接下來的教程較長,且較為復雜笋鄙,如果看文章不太清楚师枣,可看視頻版本。第一次操作可能需要你十分鐘時間萧落,熟悉后就非常輕松了践美。
準備工作
你所需要的東西非常簡單:
* iTunes (什么?你沒有找岖?)
* Charles Proxy (點擊下載)
你下載的 Charles Proxy 為30天試用版本陨倡,安裝后你將看到如下界面,這是一個10秒的等待系統(tǒng)告訴你你正在使用使試用版本许布。
另外玫膀,邊看視頻教程邊操作可能會更簡單更節(jié)約時間。
Youtube: https://www.youtube.com/watch?v=XVejjUG9xUo
優(yōu)酷: http://v.youku.com/v_show/id_XMTgxNTMxMTY0NA==.html
接下來你會收到這樣的提示:
請點擊 Grant Privilege 并輸入管理員密碼爹脾,這將自動為系統(tǒng)配置代理設置以啟用 Charles 服務。
你便可以看到左邊開始滾動顯示你的網絡流量了箕昭,先不管它灵妨。Charles Proxy 使用Men in the Middle (MitM) 來監(jiān)視你的HTTPS協(xié)議,因此它需要證書落竹。如果你配置過Surge MitM 那你已經很熟悉了泌霍,接下來我們需要先處理證書的問題:
注意 這步非常重要 如果你使用 iTunes 12 或以上版本 此步失敗將導致 iTunes 不驗證 SSL 服務器身份阻止你下載
Windows 通過證書方法請參照英語官網方法 https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
在你的頂部 Bar 中找到 Help,SSL Proxying述召,點擊「Install Charles Root CA」(圖中「I這里」的位置)朱转,這將自動打開 macOS 鑰匙串訪問,你需要再次輸入管理員密碼积暖。
雙擊打開(你的電腦上可能會有紅色 X 圖標)
將第一項「使用此證書時」改成始終信任藤为,后面的會自動修改,然后關閉小窗口夺刑,并再次輸入管理員密碼保存缅疟。
接下來請退出 Charles,我們稍后再打開它來處理遍愿。
開始下載
打開 iTunes存淫,在 App Store 中找到你所想要降級的 App,這里以 LoveLive! 學園偶像祭舉例沼填。
找到這個界面了嗎桅咆?很好,現(xiàn)在我們重新打開 Charles坞笙,等待10s進入界面之后岩饼,點擊 iTunes上的下載荚虚。
當你看到左邊有「p數(shù)字-buy.itunes.apple.com」的時候,請前往 iTunes 取消下載忌愚,因為你實際上并不需要下載它曲管。
右鍵點擊「p數(shù)字-buy.itunes.apple.com」,找到「Enable SSL Proxying」并點擊硕糊。然后回到 iTunes 刷新界面(可以重新搜索院水,也可以直接 Cmd+R)再次點擊下載,然后再次取消简十。(聽起來很奇怪不是嗎??檬某,不過沒有問題)
你驚奇地發(fā)現(xiàn)剛才的地址可以展開了,而且可以找到一個叫做 buyProduct 的東西螟蝙,我們點開它恢恼。
在右邊兩個 XML 中,下邊的那個里面找到比較底部的含有一大堆數(shù)字的項目「softwareVersionExternalIdentifiers」胰默,這就是每個版本所對應的版本 ID场斑。從小到大為從最舊的版本到最新的版本,也就是說這個App最新版本的ID是「818014617」牵署,1.0版本是「401463784」漏隐。
如果你要下載它最早的版本,那么直接使用第一個 Integer 就可以了奴迅。但是如果要下載中間的一個版本怎么辦呢青责?你可能需要對照App更新列表來找到你要的版本,并且不斷嘗試……此問題也困擾了我很久取具。
好的脖隶,現(xiàn)在我們找到了版本 ID,以 1.0 即 401463784 舉例∠炯欤現(xiàn)在我們再次右鍵「p數(shù)字-buy.itunes.apple.com」产阱,在剛剛Enable SSL Proxying 的下方找到 Breakpoint:斷點并勾選它。再次返回iTunes刷新并再次點擊下載占哟。
Duang心墅!Charles 突然彈了出來!因為你剛剛設置了斷點榨乎,iTunes 再次請求的時候 Charles 給了你一個暫停時間的功能怎燥,這個時候下面的 Cancel 就是忽略,Abort 就是阻止蜜暑,Execute 就是執(zhí)行铐姚。如果我點擊 Abort,你會發(fā)現(xiàn) iTunes 彈出窗口顯示下載未完成,未知錯誤隐绵。那是因為你拒絕了它的 buyProduct 下載之众。
閑話不多說,我們選擇頂上「Overview」旁邊的「Edit Request」依许,并在 Cancel Abort 和 Execute 的上方選擇 XML Text棺禾。
頂部有一個叫做 appExtVrsID 的項目,將它的值直接修改成我們需要的版本 401463784峭跳。然后點擊底下的 Execute膘婶。接下來還會有幾次彈窗,不需要做任何操作蛀醉,直接 Execute 即可悬襟。
恭喜!這次下載的版本就是你所需要的老版本拯刁。下載完畢后可能還會有幾次 Breakpoint脊岳,直接 Execute 即可,然后便可以關閉 Charles(如果你之前就關閉了 Charles垛玻,不影響)連接上你的 iPhone, iPad 或 iPod touch 將其同步進入設備即可割捅。
腳注:其實并不一定需要用 Charles,任何支持修改 POST 請求 HTTPS 的代理工具帚桩,方法肯定也是大同小異的棺牧。像 Surge 貌似是只能捕獲請求并不能編輯,就不太能完成這個操作朗儒。無論如何 Charles 只是其中一種選擇。
Enjoy!
(不要嘗試了 QQ 1.0 在我們現(xiàn)有的設備上都打不開)
*2016.11.14 更新:感謝各位支持参淹,最近思考了一下能不能直接在 iOS 上完成這個操作醉锄,而不需要通過 iTunes 同步,因為本身 Charles 支持接管 iOS 流量浙值,和 Surge 也是很類似的恳不。但是很遺憾,由于 iTunes Store 類軟件在 iOS 上用了特殊網絡加密开呐,不會由于系統(tǒng)信任證書來信任 Charles 的偽造中間人烟勋,而 Surge 采用了 TUN 原理所以強制成功。對于 Charles 的 SSL Proxy 其他 iOS 上的 App 都可以筐付,說明 Apple 別有用意保證用戶 App Store 安全卵惦。故大家還是需要麻煩一點通過 iTunes 來做這個操作。