隨著國內(nèi)版權(quán)環(huán)境走上正軌以及各公司日漸迫切的商業(yè)化需求女仰,我們發(fā)現(xiàn)很多“良心”應(yīng)用已經(jīng)慢慢地變得不那么良心了励背。
這時(shí)候我們就需要回到應(yīng)用的某個“良心”版本闽烙,對于安卓用戶來說每界,安裝一個歷史版本很簡單,只要搜到一個apk安裝包就行了钱反。然而iOS用戶就沒那么幸運(yùn)了掖看,正常情況下,從appstore下載的應(yīng)用是應(yīng)用的最新版本面哥,無法指定版本哎壳。
既然說正常情況下,那是不是應(yīng)該有非正常情況呢尚卫?
今天归榕,給大家介紹一種使用iTunes下載iOS應(yīng)用的任意歷史版本的方法。操作在MacOS上進(jìn)行吱涉,不過主要操作在windows上是一樣的刹泄。
首先,我們需要兩個工具:
1.抓包工具 charles
2.iTunes(這不廢話么)
這兩個工具的下載和安裝就不多說了怎爵,網(wǎng)上教程有很多特石。
一、charles配置
1.檢查charles 能否正常工作
首先退出所有代理軟件鳖链,打開charles和瀏覽器姆蘸,隨便進(jìn)入一個網(wǎng)站,觀察 charles中是否出現(xiàn)訪問記錄芙委,如果沒有請檢查所有代理是否已退出逞敷,包括瀏覽器的代理插件。同時(shí)確認(rèn)chales菜單欄的proxy下的MacOS proxy前是否打勾题山。
2.配置charles https抓取支持
由于iTunes的訪問請求都是https的兰粉,所以需要配置https支持。
首先安裝charles的ssl證書顶瞳,點(diǎn)擊 Help -> SSL Proxying -> Install Charles Certificate
<br />
系統(tǒng)會自動打開鑰匙串,找到下圖中的三項(xiàng):
默認(rèn)情況下三項(xiàng)都帶有紅叉,也就是不被系統(tǒng)信任的慨菱。
我們右擊證書焰络,顯示簡介,在信任里將“使用系統(tǒng)默認(rèn)”改為“始終信任”符喝,然后關(guān)閉闪彼。過程中需要輸入系統(tǒng)管理員密碼,輸入下就好了协饲。
三項(xiàng)證書都修改完成后畏腕,關(guān)掉鑰匙串。
二茉稠、iTunes準(zhǔn)備工作
要想下載應(yīng)用的歷史版本描馅,我們先要獲得它的版本信息。這里我們以獲取“追書神器” 2.25.1版本為例而线。
我們打開iTunes铭污,在商店搜索“追書神器”并下載,當(dāng)開始下載后停止下載膀篮,并連按“Delete”刪除任務(wù).
<br />
接著在charles里找到包含
/WebObjects/MZBuy.woa
的記錄嘹狞。
<br />
我們選中該行記錄,并將filter下方的選項(xiàng)欄由overview
切換到contents
誓竿,發(fā)現(xiàn)下面的內(nèi)容全是亂碼磅网。沒關(guān)系,我們只需要再為charles配置下啟用https抓包的站點(diǎn)筷屡。
先記錄下我們剛抓到的記錄中的Host,如圖中的“p50-buy.itunes.apple.com”涧偷。接著打開charles菜單欄下proxy
里的SSL Proxying Settings
,勾上enable SSL Proxying
,點(diǎn)擊下方"Add",在彈出框內(nèi)填入Host及Port:443,單擊OK保存退出。
<br />
完成上述工作后速蕊,為了防止混淆嫂丙,我們使用charles中間一排按鈕中的掃帚形狀按鈕清理下之前的記錄。
<br />
重新在iTunes里下載追書神器规哲,再次找到相關(guān)記錄跟啤。這次contents
里終于不再是亂碼了。
<br />
接下來是找到我們需要的版本信息了唉锌,"CMD + F"搜索
softwareVersionExternalIdentifiers
隅肥。
<br />
雙擊標(biāo)紅的那一行,會跳到我們所需的信息處袄简。
圖中一大串“<integer>xxxxxxxxxx</integer>”的項(xiàng)目就是應(yīng)用在appstore中的版本id腥放,從上到下版本由舊到新。我們需要將這些版本號記錄下來绿语。
三秃症、修改請求參數(shù)下載應(yīng)用指定版本
首先我們需要攔截iTunes的下載請求候址。在我們剛才的記錄上右擊,選擇Breakpoints
种柑,這樣就添加了一個斷點(diǎn)岗仑。
<br />
清理下記錄,再次下載“追書神器”聚请。這時(shí)請求會被攔截并hold住荠雕,charles也會自動彈出斷點(diǎn)操作窗口,我們在這里編輯請求信息驶赏。
找到
appExtVrsId
項(xiàng)炸卑,將下面string內(nèi)的值改為你要下載版本對應(yīng)的版本id。比如我要下載的2.25.1版本對應(yīng)的id是817743478煤傍,就改為817743478盖文。
注意:版本對應(yīng)的id可能需要多次嘗試才能找到,這個沒有捷徑患久,只能一個一個試椅寺。
<br />
修改完成后點(diǎn)擊下方的Execute,之后還會有一次來到斷點(diǎn),這次直接點(diǎn)擊Execute蒋失。
打開iTunes返帕,在你會發(fā)現(xiàn)下載的應(yīng)用的版本已經(jīng)是你指定的了,最后的工作就是安裝到手機(jī)上了篙挽。
提示:不用的時(shí)候要關(guān)閉charles或取消之前設(shè)置的斷點(diǎn)荆萤,否則每次iTunes下載應(yīng)用的時(shí)候都會被攔截。