禁用使用productbuild创建的安装程序中的“更改安装位置...”按钮

时间:2013-05-09 09:34:01

标签: macos productbuild pkgbuild

我想在安装程序中禁用“更改安装位置...”按钮(下面的屏幕截图)。我正在尝试使用macOSX 10.8上的pkgbuild和productbuild创建安装程序。 首先,我使用pkgbuild创建两个.pkg文件。

pkgbuild --root myApp --component-plist myApp.plist --scripts appScripts --identifier com.myapp.coreapp --version 1.0.00 --install-location /Applications --ownership preserve
pkgbuild --root myBr --component-plist myBr.plist --scripts brScripts --identifier com.myapp.browser --version 1.0.00 --install-location /Library/Internet\ Plug-Ins --ownership preserve

在上面的帖子中,我使用BundleIsRelocatable作为 false

然后我使用productbuild创建最终的安装程序包。

productbuild --distribution dist.xml --resources res inst.pkg

在dist.xml中,我尝试了与domainsrootVolumeOnly的所有组合,但我仍然无法停用 “更改安装位置...” 按钮。

有人可以帮忙吗?非常感谢。

enter image description here

3 个答案:

答案 0 :(得分:10)

我已经为此开了一个雷达错误并得到了答案 - 只需要指定,并将 rootVolumeOnly 设置为true。

所以,就我而言,以下工作:

<domains enable_localSystem="true"/>
<options rootVolumeOnly="true"/>

答案 1 :(得分:3)

不幸的是,“目的地选择”和“安装类型”始终由安装程序显示。与“更改安装位置...”按钮一样。

这不允许用户更改安装位置,但UI方式不是最佳选择。我只能建议填写错误报告。

您可能需要查看:Known Issues and Workarounds - Destination Select Pane关于domainsrootVolumeOnly的使用情况

答案 2 :(得分:2)

这是一个相当古老的问题,但我刚刚面对这个问题并修复了它。我在互联网上找到的解决方案都没有解决我的问题,因此我会将其答案发给其他遇到此问题的人。

解决方案有些奇怪,但它运行正常。您需要做的就是向安装程序添加一个空插件。以下步骤将指导您完成:

  1. 在项目中创建一个名为Plugins的文件夹,我假设该文件夹位于您的distribution.xml文件旁边。
  2. Plugins文件夹中的文件结构应如下所示:
  3. enter image description here

    正如您在Plugins文件夹顶层看到的那样,有一个名为DisbableDestinationSelect.bundle的文件夹,还有一个名为InstallerSections.plist的文件

    1. 在DisbableDestinationSelect.bundle下,您需要确切的文件夹结构。 DisbableDestinationSelect是一个必须可执行的空文件。因此,如果您在命令行中创建文件,请不要忘记运行chmod +x DisbableDestinationSelect
    2. InstallerSections.plist文件应如下所示:
    3. <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
        <key>SectionOrder</key>
        <array>
            <string>DisbableDestinationSelect.bundle</string>
            <string>Introduction</string>
            <string>ReadMe</string>
            <string>Target</string>
            <string>PackageSelection</string>
            <string>Install</string>
        </array>
      </dict>
      </plist>
      
      你去吧!现在使用如下命令创建最终产品:

      productbuild --distribution distribution.xml --resources Resources/ --plugins Plugins/ --package-path ./ "$PRODUCT_NAME.pkg"
      

      和&#34;更改安装位置......&#34;按钮永远消失了