gpt4 book ai didi

macos - 将 PackageMaker 命令行构建安装程序移植到 pkgbuild

转载 作者:行者123 更新时间:2023-12-03 22:36:06 27 4
gpt4 key购买 nike

我一直在尝试移植 Mac PackageMaker命令行构建到 pkgbuild 和 productbuild 但我被卡住了。不幸的是,除了这个 StackOverflow post 之外,我没有找到任何记录这些新程序如何工作的内容。和 pkgbuildproductbuild手册页。

这是我的问题。我创建了一个根安装目录,其中包含以下文件:

/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 relocated to /some_path/Applications/MyProgram.app



任何人都可以解释为什么这不像 PackageMaker 那样将 MyProgram.app 文件添加到/Applications 目录中?

最佳答案

不幸的是,这个问题的答案并不是我想要的。我不知道如何从流程中消除 PackageMaker。但是,有一个解决方案包含 pkgutil 和 PackageMaker,可以完全在命令行上创建带有自定义欢迎消息、许可证和背景图像的安装程序。 PackageMaker GUI 不是必需的。步骤如下:

  • 运行 packagemaker command line特殊目录结构上的可执行文件。此目录结构反射(reflect)了 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/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com