原文http://blog.csdn.net/handsomerocco/article/details/7761212
在mac上开发我们经常会需要进行打包(package)来生成安装文件,很自然的我们就会使用到 PackageMaker,这是 mac 自带的,也是 xcode 推荐使用的,但不幸的是,这个PackageMake 非常不智能,也不够人性化,导致很多新手开始使用 PackageMaker 的时候频频受阻,官方的 tutorial 也只有一篇,出了问题没有一个很好的解决方式,最重要的是,使用 PackageMaker 后,很难对打包的文件(pmdoc)进行版本管理,最终让我选择了放弃。
经过不断的寻找,最后终于找到了一款比较好用的打包工具 Iceberg, 现在推荐给大家,尤其是新手,劝你不要使用 PackageMaker 了,它只会给你带来苦恼。
下载地址:http://s.sudre.free.fr/Software/files/Iceberg.dmg
官方教程:http://s.sudre.free.fr/Software/documentation/Iceberg/English.lproj/documentation/index.html
教程写的比较详细,所有如何安装等我就不详细写了,大家如果遇到问题可以给我留言,我会给你耐心解答,我写一下使用需要注意的几个点:
1. 推荐使用 Iceberg 创建 mpkg 而不是 pkg, 因为 mpkg 更方便管理。
2.如果文件安装的路径没有在默认路径中,要先把路径创建成功后,把当前路径设置为 default destination,再使用add files功能;
3.如果想要把生成的components 的pkg 集成到 mpkg一个文件里,要选择安装到 /contents/Resources 里面。
另外,我主要想对比一下 PackageMaker 和 Iceberg, 以便让大家做一个正确的选择:
(1)guide是否全面?
PackageMaker: 比较少,不详细,官方的有一篇:PackageMaker User Guide
Iceberg: 相对全面一些,Iceberg User Guide
(2)是否支持模块化?
PackageMaker: 不能进行模块化,只能一次性把所有文件打包到一个pkg中,非常不方面于多版本多模块的管理。
Iceberg: 支持模块化,可以把要打包的文件分成小的components,然后需要哪个component,编译的是选择哪个component,这样的好处就是,如果每个版本都有不同的模块或新功能放出去的时候,你就不会乱,不用担心会不会出不该放出的文件。
(3)打包文件是否可以方面进行版本管理?
PackageMaker: 不方面版本管理,因为 pmdoc 里面的 xml文件就是一大坨,你修改了一条,就会导致所有的条目都有修改,当然,你可以每次打版本后手动对它的xml 文件tidy.
Iceberg: 比PackageMaker要好,因为分行了,另外,由于 Iceberg 的 components 的功能,让版本管理变得非常容易。
(3)是否经常出现crash 或莫名其妙的问题?
PackageMaker: 我这里经常crash, 而且会出现过让我崩溃的问题:我明明没有选中A文件,但是打出来的pkg安装后却有A文件,崩溃了一天,后来放弃了。
Iceberg:用了一段时间,没有遇见crash或诡异问题。
(4)功能比较,哪个更强大?
PackageMaker: 支持基本打包功能,比如我想加一个背景图片什么的就无法实现。
Iceberg: 除了支持基本打包功能,还有一些出彩的地方,这个要大家试过才知道,非常好用。