iPhone应用程序 PXL格式程序开发实例操作

移动开发 iOS
本文介绍的是iPhone应用程序 PXL格式程序开发实例操作,PXL是国内广泛使用的一种iOS程序安装包,他只能安装于破解版的iPhone/iPad等设备上。

iPhone应用程序 PXL格式程序开发实例操作,首先来了解一下PXLPXL是国内广泛使用的一种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的开发过程具有一些差异性,不了解这些差异性可能对你的软件运行过程中有些影响。

1、PXL可能会无法获取Document、Library等IPA必定存在的目录。

在IPA格式的软件中,软件安装后,他的目录格式大概如下:

  1. XXXXXX(苹果生成的GUID目录)  
  2. |  
  3. |____MyApp.app  
  4. |____Document  
  5. |____Library  
  6. |____tmp  
  7. |____xxxx(其他目录) 

而PXL的软件安装在破解机后,他的目录格式如下:

  1. /Applications  
  2. |  
  3. |____MyApp.app 

2、PXL程序中是否可以使用Document、Libarary等目录?

答案是应该可以。为什么是应该呢?因为这个可能和机器的破解情况相关。一般情况下,使用系统的API来获取Document目录,你将获得的目录是:/var/mobile/Document,同样,Library会指向/var/mobile/Library。基本上的破解机上这些目录都是存在的!(但是_并不保证_这些目录一定存在,有非常小的概率遇到破解有问题的机器这些目录不存在。)

那么使用这些目录有什么要注意的事项吗?

首先,所有pxl软件的Document目录都是指向同一个目录/var/mobile/Document目录,所以存在可能重名的危险!

其次,软件在被卸载的时候,你存在Document和Libary下的文件不会被删除!

3、PXL程序开发时推荐的数据保存方式?

那么在PXL的程序开发过程中,推荐使用什么样的方式来保存信息呢?

一般而言,采用自己指定目录的方式,你可以通过NSBundle来获取你的app的路径,在你的app目录下建立一个你的数据存储目录(当然,可以打包的时候直接带入,也可以直接放在你的app目录下也行)。然后将你的数据存放在这个目录底下。

还有一种情况,就是很有可能你的程序既需要生成ipa,也需要生成pxl,所以你可能需要在程序中对这些情况进行适配。那么这种情况你该怎么处理呢?

首先,代码中应该尽量避免直接使用Document、Libarary这些目录,在访问这些目录前,封装一下。例如:

  1. NSString *getMyDocumentPath()  
  2. {  
  3. NSString *path = nil;  
  4. if (isJailBreak)  
  5. {  
  6. path = MyJailBreakPath; //破解版自定义的路径  
  7. }  
  8. else  
  9. {  
  10. path = DocumentPath; //系统的Document路径  
  11. }  

那么应该用什么方式来判断是否jailBreak呢?一个方法是你打包之前,代码里头直接指定。那么动态判定的方法呢?其实很简单,你直接取访问一个超出沙盒目录的文件,如果你能访问到,那么他一定是jailBreak过的。

例如:

  1. BOOL isJailBreak()  
  2. {  
  3. int res = access(”/var/mobile/Library/AddressBook/AddressBook.sqlitedb”, F_OK);  
  4. if (res != 0)  
  5. return NO;  
  6. return YES;  

小结:iPhone应用程序 PXL格式程序开发实例操作的内容介绍完了,希望本文对你有所帮助。

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-19 10:56:15

iPhone 控制器 视图

2011-07-19 11:12:07

iPhone 控制器

2011-07-19 10:42:41

iPhone 应用程序 模型

2011-07-21 10:47:37

iPhone Cocoa 委托

2011-08-05 13:49:53

iPhone 应用 开发

2011-08-12 14:54:45

iPhone委托

2011-07-26 09:41:23

iPhone xcode Mac OS X

2010-08-27 10:41:41

iPhone核心应用程序

2011-07-26 16:43:59

iPhone Web 服务器

2011-07-26 13:23:14

iPhone 图片 相册

2011-08-10 09:31:33

开发iPhone应用程

2011-04-29 10:46:32

iPhone开发入门iPhoneiOS

2011-08-17 16:12:20

iPhone应用程序

2011-08-17 16:16:29

iPhone应用程序启动过程

2011-07-21 15:56:32

iPhone 截屏

2011-07-19 14:36:32

iPhone

2011-07-27 17:30:40

iPhone Locate 定位

2011-07-27 11:09:07

iPhone PXL

2011-07-26 10:09:08

iPhone 多语言 国际化

2011-07-20 15:58:58

iPhone 应用程序 生命周期
点赞
收藏

51CTO技术栈公众号