gfdggds提問:
即使是IPA文件,也可以有很高的權限?
小編推薦答案:
iPhone開發之PXL格式程序開發*January20th,2011*瑣碎*PXL是國內廣泛使用的一種iOS程序安裝包,他只能安裝於破解版的iPhone/iPad等設備上。和官方的IPA格式相比,pxl格式的程序有他獨特的特點。1、PXL與IPA格式優缺點比較IPA作為蘋果官方的安裝包格式,顯然在先天上有他的優勢,他易於安裝和卸載,只要使用iTunes就可以進行安裝、同步和卸載,而其他第三方的助手類軟件一般都支持IPA格式。但是由於是官方的格式,所以存在沙盒特性的限制。也就是說,他只能訪問沙盒下的目錄。PXL作為國內應用相當廣泛的軟件,他也有自身的優勢。首先,他具有更強的文件目錄訪問范圍。由於PXL是安裝在破解過的機子之上,所以PXL軟件對實現對整個文件系統訪問,因此如果你想做些和系統相關的軟件,例如安裝其他軟件或者是修改系統配置,IPA是絕對做不到的。其次,他在安裝和卸載前後具有更強的靈活性。如果你想在安裝前做些准備工作,或者卸載時做些特殊的事情,可以通過PXL的安裝後和卸載前腳本來完成你的目的。第三,PXL程序可以獲得更高的權限,可以通過一些手段,讓你的應用程序具有root的權限。而PXL的缺點也是顯而易見的!他僅僅支持破解過的iOS設備。同時他也會失去IPA軟件所具備的一些特性。2、PXL軟件開發過程與IPA軟件開發過程的差異性PXL的開發過程和IPA的開發過程具有一些差異性,不了解這些差異性可能對你的軟件運行過程中有些影響。A.PXL可能會無法獲取Document、Library等IPA必定存在的目錄。在IPA格式的軟件中,軟件安裝後,他的目錄格式大概如下:XXXXXX(蘋果生成的GUID目錄)||____MyApp.app|____Document|____Library|____tmp|____xxxx(其他目錄)而PXL的軟件安裝在破解機後,他的目錄格式如下:/Applications||____MyApp.appB.PXL程序中是否可以使用Document、Libarary等目錄?答案是應該可以。為什麼是應該呢?因為這個可能和機器的破解情況相關。一般情況下,使用系統的API來獲取Document目錄,你將獲得的目錄是:/var/mobile/Document,同樣,Library會指向/var/mobile/Library。基本上的破解機上這些目錄都是存在的!(但是_並不保證_這些目錄一定存在,有非常小的概率遇到破解有問題的機器這些目錄不存在。)那麼使用這些目錄有什麼要注意的事項嗎?首先,所有pxl軟件的Document目錄都是指向同一個目錄/var/mobile/Document目錄,所以存在可能重名的危險!其次,軟件在被卸載的時候,你存在Document和Libary下的文件不會被刪除!C.PXL程序開發時推薦的數據保存方式?那麼在PXL的程序開發過程中,推薦使用什麼樣的方式來保存信息呢?一般而言,采用自己指定目錄的方式,你可以通過NSBundle來獲取你的app的路徑,在你的app目錄下建立一個你的數據存儲目錄(當然,可以打包的時候直接帶入,也可以直接放在你的app目錄下也行)。然後將你的數據存放在這個目錄底下。還有一種情況,就是很有可能你的程序既需要生成ipa,也需要生成pxl,所以你可能需要在程序中對這些情況進行適配。那麼這種情況你該怎麼處理呢?首先,代碼中應該盡量避免直接使用Document、Libarary這些目錄,在訪問這些目錄前,封裝一下。例如:NSString*getMyDocumentPath(){NSString*path=nil;if(isJailBreak){path=MyJailBreakPath;//破解版自定義的路徑}else{path=DocumentPath;//系統的Document路徑}}那麼應該用什麼方式來判斷是否jailBreak呢?一個方法是你打包之前,代碼裡頭直接指定。那麼動態判定的方法呢?其實很簡單,你直接取訪問一個超出沙盒目錄的文件,如果你能訪問到,那麼他一定是jailBreak過的。例如:BOOLisJailBreak(){intres=access(”/var/mobile/Library/AddressBook/AddressBook.sqlitedb”,F_OK);if(res!=0)returnNO;returnYES;}
到智能時代網站查看回答詳情>>