OSX Catalina 以管理员权限破坏了 osascript 启动

OSX Catalina broke osascript launch with administrator priviledges

所有已知的先前 macOS 版本都使用这种脚本上下文:

osascript -e "/path/to/my/app.command" with administrator privileges

现在它只是默默地失败了...在询问管理员密码之后。 命令文件是最初用于启动应用程序的文件,该应用程序有一个按钮可以以特权重新启动...并且之前的非特权应用程序关闭。

如果我删除 "with administrator privileges",它会重新启动。如果有,则没有。

如果我尝试使用:

/usr/bin/security execute-with-privileges /path/to/my/app.command

它也失败了...甚至从不显示密码提示。

我也试过 "sudo open /Applications/myApp.app" 但那当然没有实际启动权限。

从 shell 我可以 sudo 启动我的应用程序,这很好,但我不能指望普通用户能够在 shell.

正如我所说,这是一个很好的方法,可能在过去的 6 到 8 年里一直有效……但现在失败了。任何人有任何技巧或方法来解决它吗?

有一次....我不知道为什么,我看到 OSX 安全弹出窗口指示 "java" 不是受信任的应用程序,我的设置只允许应用程序商店应用程序。但这只发生过一次……而且很奇怪。我点击确定,它消失了。我以为 java 可能已被隔离,所以我执行了清除该标志的命令:

xattr -rd com.apple.quarantine /path/to/the/binary/java

但这没有什么区别。我确定这是 Catalina 中的新安全功能,使事情变得困难……但我无法弄清楚为什么或如何解决这些问题。它是一个 java 应用程序,通过 app.command 文件启动,该文件在机器上找到 java 然后启动它...默认在其自己的子文件夹中查找本地副本。

检查项目的沙箱设置。 App Sandbox 应在权利文件中设置为 false。 沙盒功能可防止您的应用提升应用中的权限。 参考:https://developer.apple.com/app-sandboxing/