越狱后,iOS针对IPA的沙盒就失效了?

放大字体  缩小字体 2018-04-12 23:26:19  阅读:7220 来源:本站原创 作者:巩新亮
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;}
到智能时代网站查看回答详情>>

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!