iPhone开发之PXL格式程序开发

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.app

B.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过的。
例如:
BOOL isJailBreak()
{
int res = access(”/var/mobile/Library/AddressBook/AddressBook.sqlitedb”, F_OK);
if (res != 0)
return NO;
return YES;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值