自己测试后发现,如果不需要签名,内部使用的mac app,用默认的打包方法却是也是很快捷的说(Disk Utility)
******
下面文字基本可以不看
=====================
在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
教程写的比较详细,所有如何安装等我就不详细写了,大家如果遇到问题可以给我留言,我会给你耐心解答,我写一下使用需要注意的几个点:
- 推荐使用 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: 除了支持基本打包功能,还有一些出彩的地方,这个要大家试过才知道,非常好用。
=========================================
核心重点其实是
核心提示:p=1219OSX程序打包大概有两种,其一就打成pkg,另一就是dmg了,将做好的App打包起来就可以变成最终的产品.pkg的方式:个人比较推荐用工具Iceberg来打包(当然也可以用apple的打…
OSX程序打包大概有两种,其一就打成pkg,另一就是dmg了,将做好的App打包起来就可以变成最终的产品.
pkg的方式:
个人比较推荐用工具Iceberg来打包(当然也可以用apple的打包工具,这里不作介绍),这个工具的License是BSD的,所以包括商业行为的公司都可以放心地使用,不用担心版权的问题,这里详细的说明s.sudre.free.fr/Software/Iceberg.html 有源代码以及binary文件下载,基本上都有教程的,可以说比较简单易用的GUI方式,这里就不多介绍了。
DMG磁盘镜像方式 简单的dmg方式
dmg的方式比较流行,直接了当,一拖一拽就搞定,简单易用的东西,总是比较受欢迎的,打包的工具就是直接用 Disk Utility , 步骤为 File–> New –> Disk Image From Folder…最后写上文件名.dmg 直接保存就可以了,也可以用commandline的方式,下面有个简单的例子,具体更多的参数,请查看hdiutil的使用。
1 hdiutilcreateyour_dmg_name.dmg-volname the_name_on_volume -fsHFS±srcfolder /your/dir
自定义的dmg方式
如果只是简单icon的话,显示比较单调一点,至少来一点colorful的背景吧,可以自定义一些图片作为背景,再是最好就直接在小区域内拽动就行了,不要老远找另一个Finder中的Applications才行。
通过 Disk Utility 创建一个空白的dmg镜像, File–> New –> Blank Disk Image
双击“MyTest” 出来的空白窗口,一切的东西都在这里布局了, 请准备好一背景图片。以下是本人打包用的图片将这图片拽到“MyTest”里面,并在空白处右键(或菜单的方式也可以),选择”Show View Options”将图片设置为背景设置好后,可以将原来的图片hidden了(在Terminal的command line) 1 2 jackmac:~jackman
c
d
/
V
o
l
u
m
e
s
/
M
y
T
e
s
t
/
j
a
c
k
m
a
c
:
M
y
T
e
s
t
j
a
c
k
m
a
n
cd/Volumes/MyTest/ jackmac:MyTestjackman
cd/Volumes/MyTest/jackmac:MyTestjackmanmvbg_img.jpeg.bg_img.jpeg 将build好的app拽到“MyTest”里面 做Applications快捷方式(右键–>Make Alias) 将 Applications快捷方式 拽到“MyTest”里面,到这里完全大部分了 美化一下dmg, 加一个美美的图标给它,无非也是复制一个image,右键MyTest–>GetInfo在icon的位置粘贴过去就可以了 将做好的dmg,转换一下就完成了,在DiskUtility 中如果没有的话,请将它拽回去就可以了,然后右键MyTest.dmg–>Convert”My……”
(也可以用另一方法Disk Utility File –>New –> Disk Image From folder… 然后选择”MyTest.dmg”)
最终的效果(双击“MyTestProduction.dmg”) 这样就大功告成了,😃 参考资料 Create DMG file /?p=700