Mac 安装程序包 (productbuild) 要求输入管理员密码,但不应该

问题描述 投票:0回答:2

我已经用productbuild创建了一个pkg安装程序包,方式如下:

$ productbuild --component "/Applications/Earlybird.app" /Applications --sign "Developer ID Installer: Name" --product "/Applications/Earlybird.app/Contents/Info.plist" Thunderbird_14.0_enUS.pkg

这效果很好。但如果我尝试安装该应用程序,它会要求输入管理员密码。但对于简单的应用程序来说并不需要它。这会让用户感到困惑。因此,我尝试通过使用平面包编辑器打开 pkg 并将 PackageInfo 文件中的 auth="root" 更改为 auth="none" 来解决此问题。但它仍然要求输入管理员密码。这是为什么?我该如何解决?我使用的是 OS X 10.8。谢谢!

macos code-signing osx-mountain-lion productbuild
2个回答
0
投票

在 Mac 上,您需要管理访问权限才能写入 /Applications。

除了将应用程序复制到用户的主文件夹之外,没有其他方法可以解决此问题。


0
投票

我通过编辑

Distribution.xml
文件以包含以下内容来实现 op 想要的目标:
<domains enable_anywhere="false" enable_currentUserHome="true"/>
(在 MacOS 13.5 上)

官方参考不太清楚:

必填。如果为 true,或者 JavaScript 表达式的值为 true,则该产品可以安装到当前用户的主目录中。否则无法安装到当前用户的主目录。 主目录安装以当前用户(而不是 root)身份完成,并且不能在主目录之外写入。仅当产品可以安装在用户的主目录中并且从该位置完全正常运行时,您才应启用此功能。

但是,由于一般来说,用户不需要提升权限来安装到主目录,并且由于此设置意味着可以支持主目录安装,因此不再需要广告管理员密码是有意义的。我发现,如果您是 root,安装到

/Applications
也不需要密码。

您可以通过在您创建的

.pkg
上执行以下操作来快速测试上述内容:

  • pkgutil --expand Thunderbird_14.0_enUS.pkg ./tmpdir
  • 编辑 ./tmpdir 中的 Distribution.xml
  • pkgutil --展平./tmpdir Thunderbird_14.0_enUS.pkg
© www.soinside.com 2019 - 2024. All rights reserved.