IPA是Apple程序应用文件iPhoneApplication的缩写。简单来说,
Mac 下的软件就像是 Windows 下的
绿色软件一样,解压后即可使用,不需要安装,卸载的话也只用删除
程序文件即可(这里不涉及
pkg 格式
安装包)。
定义理解
IPA是Apple程序应用文件iPhoneApplication的缩写。
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,因为删除过程太长导致失去响应并删除失败。),但这种方法会造成系统的不稳定。除非是确实碰到了问题,否则强烈建议不要使用。