首先需要一个可以编辑和压制的环境,Ubuntu/Debian 是 deb 文件系统的原生系统,在兼容性和处理性能上最好。
如果你没有Linux Debian或Ubuntu系统的机器,不要紧,可以随时用VMware Station或VirtualBox虚拟机来安装一个。我用的Ubuntu 12.0.4。全新系统完全支持压制deb,不需要额外安装任何脚本或插件!
先分析一下deb文件包的格式,通常一个deb文件未打包之前的,当作一个zip文件看待,跟目录有如下:
+- MyProgram
+- Applications
| +- MyProgram.app
| | +- Info.plist
| | +- MyProgram
| | +- icon.png
+- DEBIAN
+- control
其中,control文件可视为一个没有后缀的UTF-8,Unix编码,Unix/Linux换行符(LF)的一个文本文件,可用写字版进行编辑,在Ubuntu中直接双击就可进行编辑了!而其所在文件夹名字最好一字不留的大写,以免出现不必要的错误!
以下是control文件的示范:
Package: com.myrepospace.newpgt.MyProgram
Name: MyProgram
Version: 1.0.1.7
Architecture: iphoneos-arm
Description: nothing fucking really
Homepage: http://www.google.com
Maintainer: NEO <newpgt@gmail.com>
Author: NEO Z <newpgt@gmail.com>
Section: Games
其次,另一个文件夹Applications,其实这个是指定在iPhone的安装路径,对于App来说就是这个路径了,详看iPhone的文件目录。
而其中的MyProgram.app这个是在XCODE里面copy出来的一个,当你写完一个程序,运行成功后,在product里面就可以看见,点击show in folder就可以找到了,这个.app文件里是多于三个文档的,只要完全copy就对了!
另外,还需要加上一个icon.png来作为该程序的图标。需要的话!
这样,基本上就够成了deb的所有文档了!
但是在打包之前,还需要赋予其所有文档一个在iPhone上的可以执行的足够权限,没有足够的权限在iPhone上是无法运行的,例如0755。
例如把这个文件建立在Documents目录底下的MyProgram子文件夹里。
打开一个终端,
sudo chmod -R 0755 ~/Documents/MyProgram/Applications/MyProgram.app
需要输入密码。
结束后你会发现MyProgram.app的文件夹图标上多了一个锁,这是权限设置成功的。
这样就赋予了权限了,还需要给整个文件夹设定用户组
sudo chown root:admin ~/Documents/MyProgram
然后就是打包了
sudo dpkg-deb –b ~/Documents/MyProgram
其中可能会出现如下的警告,不影响的,据说是版本的问题!
warning, `MyProgram/DEBIAN/control' contains user-defined field `Name' warning, `MyProgram/DEBIAN/control' contains user-defined field `Homepage' warning, `MyProgram/DEBIAN/control' contains user-defined field `Author' warning,
好了,打包完后你会发现Documents目录下多了一个MyProgram.deb的文件,这个就可以进行安装了。
还需要找个服务器给上传,让别人一起分些。下面是几个免费的源服务器,注册一个账号,再把deb文件上传就可以了。
http://www.myrepospace.com/
http://thebigboss.org/hosting-repository-cydia/submit-your-app
或者
http://apt.178.com/
本人的源
http://cydia.myrepospace.com/newpgt/
目前只有一个测试用的deb,亲测可运行(IOS 5),不过没什么内容。希望日后加以补充!