我正在更新一些构建脚本以使用 pkgbuild 而不是 PackageMaker,但我没有看到要求重新启动组件包的选项。在 PackageMaker 中,可以使用以下两种方法之一来完成要求重新启动:
- (旧版兼容模式)在 Info.plist 中,将 IFPkgFlagRestartAction 设置为 RequiredRestart。
- 在 PackageInfo 文件中,将 pkg-info>postinstall-action 设置为重新启动。
我没有看到 pkgbuild 或其组件包 plist 的任何类似选项。我知道,当我们使用 productbuild 构建发行版时,我们可以选择使用发行版文件的 pkg-ref>onConclusion 键在每个包的基础上要求重新启动。但这是现在唯一的方法(不使用 PackageMaker)吗?如果是这样,我想知道为什么这个要求被移出组件包并进入依赖于它们的发行版。在我看来,当组件包可以指定自己的要求时,它们仍然更加模块化。
编辑:如果您在生成的 PackageInfo 中设置 postinstall-action="restart" 您可以强制重新启动。现在的问题是如何教 pkgbuild 自动将其写入 PackageInfo 文件。