Macos 使用自定义资源和脚本创建平面.pkg文件的可编写脚本的方法

Macos 使用自定义资源和脚本创建平面.pkg文件的可编写脚本的方法,macos,packagemaker,xar,Macos,Packagemaker,Xar,我使用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-onl

我使用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
License.rtf
,在
scripts
文件夹中,我有
飞行前
飞行后
以及这些脚本的各种支持文件。生成的.pkg似乎功能齐全,只是安装程序没有显示我的背景、欢迎或许可证

如何将自定义背景、欢迎和许可添加到平面软件包中?

据我所知,.pkg中的
发行版
文件缺少对后台文件、欢迎文件和许可文件的引用

作为一种解决方法,我尝试使用
xar
。如果我像这样用xar解包:

xar -xf ./myroot.pkg -C work
并为这些文件添加3个标记,然后使用xar再次打包:

cd work && xar -cf ../myroot2.pkg *
我得到了一个安装包,可以使用我的背景等开始安装,但是当需要安装我的.app时,我会收到以下错误(来自
/var/log/install.log
):

我也尝试过扁平包编辑器:打开myroot.pkg,拖出发行版,编辑它,拖回,删除旧发行版,保存。与xar的问题相同

我更希望有一个完全可编写脚本的解决方案,而不是使用GUI


Edit:我还尝试使用
pkgutil
来扩展、编辑发行版,并在一个扁平的包中刷新。这将在安装程序中获取图标和自述文件,但安装程序随后无法解压缩有效负载。如果我使用
平面软件包编辑器
刷新,则相同。我也尝试过在没有PackageMaker的情况下创建一个扩展包(除了在10.8上,它可以正常工作),但当我尝试用pkgutil将其展平时,结果又是一个损坏的包。

PackageMaker始终是buggy has hell,并被Mac OS X 10.6 Snow Leopard弃用


你应该使用。

PackageMaker一直是buggy has hell,并被Mac OS X 10.6 Snow Leopard弃用


您应该使用。

这有一些关于Packagemaker的有用帖子,包括有关用法和常见问题解决方案的详细信息。希望能有所帮助。

这里有一些关于Packagemaker的有用帖子,包括关于用法和常见问题解决方案的详细信息。希望它能有所帮助。

请查看-这是一个Makefile帮助文件,可以让您使用sane Makefiles创建OS X软件包。免责声明:我是它的原始作者,尽管现在有很多其他人的贡献。

请查看-这是一个Makefile帮助文件,允许您使用sane Makefiles创建OS X软件包。免责声明:我是它的原始作者,尽管现在有很多其他人的贡献。

到目前为止,我对pkgbuild的运气更差。我想如果我不能让这种方法发挥作用,我需要再试一次。如果你描述一下你在pkgbuild中遇到的问题,我会尽力帮助你。可能会更新问题或开始一个新的问题与更多的细节。你有没有一步一步地跟踪我的链接?如果是这样的话,麻烦是从哪里开始的……尽管这并没有解决我的问题,但它基本上等同于“它不可能做到(至少不是那样)”,这本身就很有用。因此,将此作为答案。到目前为止,我在pkgbuild方面的运气更差。我想如果我不能让这种方法发挥作用,我需要再试一次。如果你描述一下你在pkgbuild中遇到的问题,我会尽力帮助你。可能会更新问题或开始一个新的问题与更多的细节。你有没有一步一步地跟踪我的链接?如果是这样的话,麻烦是从哪里开始的……尽管这并没有解决我的问题,但它基本上等同于“它不可能做到(至少不是那样)”,这本身就很有用。因此,我们将此作为答案。
 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