IPA

蘋果應用程序文件格式

IPA是Apple程序應用文件iPhoneApplication的縮寫。簡單來說,Mac下的軟體就像是Windows下的綠色軟體一樣,解壓后即可使用,不需要安裝,卸載的話也只用刪除程序文件即可(這裡不涉及pkg格式安裝包)。

操作指南


IPA是Apple程序應用文件iPhoneApplication的縮寫。
使用過MacOS的人可能都知道,Mac下的軟體大部分都只有一個.app目錄,裡面包含了程序全部資源和可執行文件。簡單來說,Mac下的軟體就像是Windows下的綠色軟體一樣,解壓后即可使用,不需要安裝,卸載的話也只用刪除程序文件即可(這裡不涉及pkg格式安裝包)。而ipa格式可以視為這種.app軟體的衍生物。
ipa文件實質是一個zip壓縮包(不是rar或7z包),包含3個組件:payload目錄下的.app目錄,這個是軟體的主程序;iTunesArtwork,實質是一個無後綴名的png圖片,用來在iTunes中顯示圖標;iTunesMetadata.plist,記錄購買者信息、售價等數據。
由於zip包不能記錄許可權和所有者等信息,所以蘋果規定了ipa的安裝方式,即全部ipa都會解包安裝在/var/mobile/Applications目錄下,全部文件和目錄的所有者及用戶組均設為mobile(ID為501),主程序(可執行文件)的許可權設為0755(所有人都可以執行,但只有所有者可以修改),可執行文件在plist中定義。全部目錄許可權設為0755,而其它所有文件都設為0644(僅所有者可以修改,其餘人只允許讀取,全部人都不允許執行)。
ipa解包后並非直接放置於Applications目錄下,而是放在一串由隨機碼構成的目錄下,其作用在於,只允許這個軟體運行在一個特定的沙盒(Sandbox)中,不能幹擾其他軟體。因此那串隨機碼目錄下,除了ipa本身的三個組件之外,還有三個目錄:Library,一般是用了儲存設置文件等數據;Documents,存儲數據,多用來保存存檔;tmp,臨時文件夾。
由於這個軟體只能在這個特定的目錄下運行(當然了,部分程序會調用系統的通訊錄、相機等組件,但仍然是受限制的),從而保證了整個系統的安全性和穩定性。
由於Unix系統下對許可權的規定相當嚴格,所以“越權”的行為是絕對不允許的。舉個例子,mobile用戶無權刪除root所有的文件,因為root的許可權高於mobile。所以有些人在修改ipa安裝后的文件時,比如進行漢化或者修改存檔,發現不能刪除乾淨軟體,或不能保存,這是因為刪除時不能刪除root所有的文件,程序本身也無法對root所有的存檔文件進行寫入操作。

版本介紹


豐富的資源:AppStore上那麼多資源,apptrackr等網站也提供了很多破解版。完善的更新、後期服務。只能使用最小許可權,保障安全性。不涉及系統級的操作,所以一般不容易造成死機或白蘋果(有些是因為資源消耗太大所以卡死)。便捷的安裝方式,無論是直接在設備上用AppStore安裝,還是用iTunes來同步,抑或是用Installous和91這類第三方軟體來安裝,都是很方便快速的安裝方式。超級簡單的卸載方式:還有什麼比只需要點一個X就能卸載更簡單呢?完全刪除,不會留下任何垃圾文件(如存檔、設置文件等)總體來說破解還是比較容易的,越來越多軟體加入了防破解措施。
之前提到過,ipa軟體是被安裝在一個類似於沙盒的環境中,除了能對/var/mobile/Media/DCIM目錄(拍照、截圖存放目錄)進行操作,或是調用壁紙、鈴聲、相機等組件,不能對系統進行任何干涉,這樣在最大程度上保證了系統的穩定運行,也不會幹擾其它軟體的正常使用。但問題是,由於ipa軟體的許可權很低,想要對系統進行修改,尤其是應用補丁時,ipa就無能為力了。
ipa軟體官方的安裝方式有兩種,一是在AppStore這個軟體中下載安裝,二是用iTunes同步。
前者的問題主要是網路問題,網速不好很容易安裝失敗;GPRS之類的上網安裝又很耗流量。後者的問題主要是不能在不同系統下使用(包含不同電腦和同一部電腦上的不同系統),在其它系統上同步會抹掉原有的軟體。當然了,iTunes每次同步時間比較長也是經常被人詬病的。尤其是當安裝軟體比較多的時候,每次同步之前的備份需要很長很長時間,這個很噁心(不過可以直接X掉備份操作)。
由於以上兩種方式存在一些問題,所以很多人會選擇使用Installous或91來安裝ipa,這也確實是個不錯的選擇。
Installous一般沒什麼問題,但對部分驗證比較嚴格的ipa處理不是很好。雖然Installous基本能代替iTunes,但畢竟不完全等同。最典型的就是Installous安裝Microsoft官方出的LiveMessenger(正版,非破解版)時不能運行。實際上Installous對很多未破解的正版軟體支持不是很好。
至於91,經常被人批評。91雖然可以安裝ipa,但除了Installous都有的正版軟體的支持問題外,由於91的安裝機制有缺陷,軟體不能實現多語言,只會使用英文界面,而忽略掉zh_CN.lproj,zh_TW.lproj這些語言包。這對那些用希望使用漢化版的人來說實在是一個悲劇。所以通常是要避免使用91來安裝ipa的。
至於卸載,三種方法:設備上按住圖標直到開始晃動,點擊圖標左上角的X即可卸載;於iTunes中取消選中,然後同步找到/var/mobile/Applications下的相應目錄,強行刪除整個文件夾。這個在前面兩種方法無法使用時可以採用(有時候卸載體積太大的軟體,比如超過1G,因為刪除過程太長導致失去響應並刪除失敗。),但這種方法會造成系統的不穩定。除非是確實碰到了問題,否則強烈建議不要使用。