我使用 PackageMaker 3.0.6 在 10.7 上创建了一个带有以下选项的平面 .pkg 文件:
/Applications/PackageMaker.app/Contents/MacOS/Package --root ./myroot \
--id com.myroot.pkg --title "My Root" --scripts ./scripts --target 10.5 \
--verbose --resources ./resources --root-volume-only --domain system \
--no-relocate --versio 1.0 --certificate "My Cert Name"
在我拥有的resources
文件夹中,在我拥有的文件夹中background.png
,Welcome.rtf
以及这些脚本的各种支持文件。生成的 .pkg 似乎功能齐全,只是安装程序不显示我的背景、欢迎或许可证。License.rtf
scripts
preflight
postflight
如何为平面包添加自定义背景、欢迎和许可?
据我所知,Distribution
.pkg 中的文件缺少对背景、欢迎和许可文件的引用。
作为一种解决方法,我尝试使用xar
. 如果我像这样用 xar 解包:
xar -xf ./myroot.pkg -C work
并为这些文件添加 3 个标签,然后用 xar 再次打包:
cd work && xar -cf ../myroot2.pkg *
我得到一个包,可以在我的背景等情况下开始安装,但是当安装我的 .app 时,我得到了这些错误(来自/var/log/install.log
):
run preupgrade script for myroot
Could not create task for action: run preupgrade script for myroot2
Install failed: The Installer could not extract files from the package for myroot2. Contact the software manufacturer for assistance.
IFDInstallController 863170 state = 7
我也试过 Flat Package Editor:打开 myroot.pkg,拖出 Distribution,编辑,拖回来,删除旧的 Distribution,保存。与 xar 相同的问题。
我宁愿拥有一个完全可编写脚本的解决方案,而不是使用 GUI。
编辑:我还尝试使用pkgutil
扩展、编辑分发和重新扁平化包。这会在安装程序中获取图标和自述文件,但安装程序随后无法解压缩有效负载。如果我用Flat Package Editor
. 我还尝试创建一个没有 PackageMaker 的扩展包(它可以工作,除了 10.8),但是当我尝试使用 pkgutil 将其展平时,结果又是一个损坏的包。