我已经用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。谢谢!
在 Mac 上,您需要管理访问权限才能写入 /Applications。
除了将应用程序复制到用户的主文件夹之外,没有其他方法可以解决此问题。
我通过编辑
Distribution.xml
文件以包含以下内容来实现 op 想要的目标:<domains enable_anywhere="false" enable_currentUserHome="true"/>
(在 MacOS 13.5 上)
官方参考不太清楚:
必填。如果为 true,或者 JavaScript 表达式的值为 true,则该产品可以安装到当前用户的主目录中。否则无法安装到当前用户的主目录。 主目录安装以当前用户(而不是 root)身份完成,并且不能在主目录之外写入。仅当产品可以安装在用户的主目录中并且从该位置完全正常运行时,您才应启用此功能。
但是,由于一般来说,用户不需要提升权限来安装到主目录,并且由于此设置意味着可以支持主目录安装,因此不再需要广告管理员密码是有意义的。我发现,如果您是 root,安装到
/Applications
也不需要密码。
您可以通过在您创建的
.pkg
上执行以下操作来快速测试上述内容: