macos - 操作系统: Avoid userprompt when opening embedded binary

标签 macos cocoa sandbox mac-app-store

我有一个沙盒应用程序,它使用嵌入式二进制文件来显示其状态项。 首次启动主应用程序时(它启动嵌入式二进制文件,如下所示:

 NSWorkspace.sharedWorkspace().launchApplication(statusItemPath)

) 如果用户确实想要启动嵌入式应用程序,OSX 会显示用户提示: enter image description here

我发现这确实让用户感到困惑 - 我知道这是出于安全原因,但我想通过 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/

相关文章:

objective-c - 以编程方式取消静音OSX中的音频输入(麦克风)

ios - 找到所有单例的 cocoa 类?

cocoa - 使用 Cocoa 保存 Web 文件

iphone - 在 iPhone 沙箱中查找文件

ruby - 无法使用 rvm 1.26.11 (OSX Yosemite) 安装 Ruby 2.3.0

macos - Cloudkit 在尝试保存记录时出错

python - MacOS 10.14 Plotly dash python 脚本未在本地主机上运行

objective-c - NSTextField 类控件用于输入快捷键 - Objective-C/Cocoa

css - 测试网站的最佳实践

javascript - 带有 `target="_blank "` doesn' t 打开新选项卡或窗口的沙盒 iFrame