jjgod / blog Random notes by Jjgod Jiang.

Posts Tagged ‘pkg’

Packaging for Installation on Mac OS X

在 Mac OS X 下为程序打包该用什么格式?这是个很有趣的问题,首先,显然绝大部分的应用程序都应该: 使用手动安装,也就是一个独立的 .app,里面通过 @executable_path/../Frameworks/ 的方式链接所有依赖的第三方库,也就是说,不往系统相关目录里乱放东西。这是 Apple 官方的 Software Delivery Guide 中推荐的安装方式。 支持用 Sparkle 这样的自动更新框架,实际上符合上一点的也就自然可以用 Sparkle 完全自动的完成更新。 用 .zip 格式分发。为什么不用 .dmg?因为 .dmg 不容易直接解压,挂载速度比 .zip 慢得多,增加拖动的手续,所以我支持这篇 zip vs dmg 的观点。 但是如果遇到特殊的情况呢?比如你写的是一个非得往系统目录 (/Library/…) 安装内容的软件呢?比如我最近参与改进的 SunPinyin 输入法,就必须打包为 Installer 支持的 .pkg 格式安装了,否则很难确保软件被正确的安装。 关于这个打包方式,最重要的一点心得是:千万不要用 Apple 自己提供的 PackageMaker,这恐怕是 Apple 开发的最恐怖的一个开发辅助工具了,因为: 它必须用图形界面修改内容 它保存的 .pmdoc 格式非常混乱,而且居然喜欢把绝对路径存入文件中 不支持 Installer Plugins 扩展 [...]