我一直在尝试将Mac PackageMaker命令行构建移植到pkgbuild和productbuild,但是遇到问题。不幸的是,除了这个StackOverflow post以及pkgbuild和productbuild手册页之外,我没有发现很多文件可以证明这些新程序的工作方式。
这是我的问题。我创建了一个包含以下文件的根安装目录:
/some_path/Applications
/MyProgram.app
/Library
/Frameworks
/MyFramework.framework
/[library files...]
下面的命令行调用非常适合PackageMaker。它创建了一个安装程序,用于安装上述所有文件。
$ /Developer/usr/bin/packagemaker \
--title "My Program" \
--root /some_path \
--version 1.0.0 \
--filter "\.DS_Store" \
--resources ./resources/ \
--scripts ./scripts/ \
--root-volume-only \
--domain system \
--verbose \
--no-relocate \
--target 10.5 \
--id com.my_company.pkg \
--out MyProgram.pkg
现在,我尝试使用pkgbuild编写此文件,但遇到了一个主要问题。我使用以下电话:
$ pkgbuild \
--root /some_path \
--version 1.0.0 \
--install-location "/" \
--scripts "./scripts/" \
--identifier "com.my_company.pkg" \
MyProgram.pkg
此命令生成一个安装程序,该程序将MyProgram.framework目录复制到/ Library / Frameworks中。但是,它不会将MyProgram.app文件安装到/ Applications目录中。当我查看安装程序日志时,会看到以下消息:
Applications / MyProgram.app重定位到
/some_path/Applications/MyProgram.app
谁能阐明为什么它不像PackageMaker那样将MyProgram.app文件添加到/ Applications目录中?
最佳答案
不幸的是,这个问题的答案并不完全是我想要的。我不知道如何从该过程中消除PackageMaker。但是,有一个包含pkgutil和PackageMaker的解决方案,可以在命令行上完全使用自定义欢迎消息,许可证和背景图像来创建安装程序。不需要PackageMaker GUI。步骤如下:
在特殊目录结构上运行packagemaker command line可执行文件。此目录结构反映了Mac文件系统。在旧的但可靠的"PackageMaker How-to" tutorial中阅读更多内容。
运行pkgutil(pkgutil --expand
)提取软件包内容
查看内容并确定要更改的内容。一些选项是欢迎消息,许可证和背景图片。
通过命令行添加命令来更改这些文件。查看"Automating Apple's PackageMaker" tutorial以获取更多信息。最简单的方法就是运行这样的echo '<background file="your_background.png">'
。
运行pkgutil(pkgutil --flatten
)重建软件包。
关于macos - 将PackageMaker命令行构建安装程序移植到pkgbuild,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11796740/