苹果应用程式档案格式 IPA


苹果应用程式档案格式 IPA

文章插图
IPA(苹果应用程式档案格式)【苹果应用程式档案格式 IPA】IPA是Apple程式套用档案iPhoneApplication的缩写 。简单来说,Mac 下的软体就像是 Windows 下的绿色软体一样,解压后即可使用,不需要安装,卸载的话也只用删除程式档案即可(这里不涉及 pkg 格式安装包) 。
基本介绍外文名:IPA
适合平台:苹果系统
特点:软体与安装包为一体
开发公司:苹果(Apple)
定义理解IPA是Apple程式套用档案iPhoneApplication的缩写 。使用过 Mac OS 的人可能都知道,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 所有的存档档案进行写入操作 。软体特点丰富的资源:App Store 上那幺多资源,apptrackr 等网站也提供了很多破解版 。完善的更新、后期服务 。只能使用最小许可权,保障安全性 。不涉及系统级的操作,所以一般不容易造成当机或白苹果(有些是因为资源消耗太大所以卡死) 。便捷的安装方式,无论是直接在设备上用App Store安装,还是用 iTunes 来同步,抑或是用 Installous 和 91 这类第三方软体来安装,都是很方便快速的安装方式 。超级简单的卸载方式:还有什幺比只需要点一个 X 就能卸载更简单呢?完全删除,不会留下任何垃圾档案(如存档、设定档案等)总体来说破解还是比较容易的,越来越多软体加入了防破解措施 。之前提到过,ipa 软体是被安装在一个类似于沙盒的环境中,除了能对 /var/mobile/Media/DCIM 目录(拍照、截图存放目录)进行操作,或是调用壁纸、铃声、相机等组件,不能对系统进行任何干涉,这样在最大程度上保证了系统的稳定运行,也不会干扰其它软体的正常使用 。但问题是,由于 ipa 软体的许可权很低,想要对系统进行修改,尤其是套用补丁时,ipa 就无能为力了 。ipa 软体官方的安装方式有两种,一是在 App Store 这个软体中下载安装,二是用 iTunes 同步 。前者的问题主要是网路问题,网速不好很容易安装失败;GPRS之类的上网安装又很耗流量 。后者的问题主要是不能在不同系统下使用(包含不同电脑和同一部电脑上的不同系统),在其它系统上同步会抹掉原有的软体 。当然了,iTunes 每次同步时间比较长也是经常被人诟病的 。尤其是当安装软体比较多的时候,每次同步之前的备份需要很长很长时间,这个很噁心(不过可以直接 X 掉备份操作) 。由于以上两种方式存在一些问题,所以很多人会选择使用 Installous 或 91 来安装 ipa,这也确实是个不错的选择 。Installous 一般没什幺问题,但对部分验证比较严格的 ipa 处理不是很好 。虽然 Installous 基本能代替 iTunes,但毕竟不完全等同 。最典型的就是 Installous 安装 Microsoft 官方出的 Live Messenger (正版,非破解版)时不能运行 。实际上 Installous 对很多未破解的正版软体支持不是很好 。至于91,经常被人批评 。91 虽然可以安装 ipa,但除了 Installous 都有的正版软体的支持问题外,由于91的安装机制有缺陷,软体不能实现多语言,只会使用英文界面,而忽略掉 zh_CN.lproj,zh_TW.lproj 这些语言包 。这对那些用希望使用汉化版的人来说实在是一个悲剧 。所以通常是要避免使用91来安装 ipa 的 。至于卸载,三种方法:设备上按住图示直到开始晃动,点击图示左上角的 X 即可卸载;于 iTunes 中取消选中,然后同步找到 /var/mobile/Applications 下的相应目录,强行删除整个资料夹 。这个在前面两种方法无法使用时可以採用(有时候卸载体积太大的软体,比如超过 1G,因为删除过程太长导致失去回响并删除失败 。),但这种方法会造成系统的不稳定 。除非是确实碰到了问题,否则强烈建议不要使用 。