我有一个沙盒应用程序,它使用嵌入式二进制文件来显示其状态项。 首次启动主应用程序时(它启动嵌入式二进制文件,如下所示:
NSWorkspace.sharedWorkspace().launchApplication(statusItemPath)
) 如果用户确实想要启动嵌入式应用程序,OSX 会显示用户提示:
我发现这确实让用户感到困惑 - 我知道这是出于安全原因,但我想通过 MAS 分发,因此两个二进制文件都需要通过审核。
有没有办法避免此用户提示(可能是歌唱选项或授权 key ?)
最佳答案
当从互联网下载应用程序或首次通过其他程序运行应用程序时,OS X 会使用名为 'quarantine' 的机制来保护用户。 .
一旦用户接受运行应用程序,应用程序上的隔离扩展属性就会被删除。
可以使用以下命令删除隔离属性:
xattr -d com.apple.quarantine /PATH/TO/APPLICATION
因此,您可以调用系统从嵌入式二进制文件上的初始应用程序运行此代码。不过,我不确定 Apple 的 App Store 是否可以接受。
首选方法是使用 XPC 并创建一个由 launchd 自动启动的帮助程序应用程序。您可以阅读 here .
关于macos - 操作系统: Avoid userprompt when opening embedded binary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28833298/