强制使用“ open”命令打开未签名的应用程序?


21

我已经设置了“安全性”首选项,以允许从“ Mac App Store和确定的开发人员”下载应用程序。当我尝试打开未签名的应用程序时:

open xyz.app

我看到以下内容:

应用无法打开

通常,我右键单击该应用程序,然后单击“打开”。这会弹出类似的对话框,但其中包括一个“始终打开”类型的按钮:

使用“打开”按钮无法打开应用

有没有办法仅使用open命令来执行此操作-类似于:

open --even-if-unsigned xyz.app

Answers:


33
  1. 创建并添加Gatekeeper标签到应用程序。(“已批准”是任意字符串。)

    spctl --add --label "Approved" /path/to/xyz.app
  2. 批准所有带有标签的应用。

    spctl --enable --label "Approved"

    这仅需要执行一次,并且将来在应用程序中添加相同的命名标签会自动启用其访问权限。

  3. 照常打开应用程序。

    open xyz.app

有关spctl(SecAssessment系统策略安全性)的更多信息,请参见手册页。


3
啊,我以前只知道如何做GUI-ly,现在可以在命令行上做的事情清单上的新内容!谢谢!
LSpice

19

您可以从应用中删除隔离区:

xattr -r -d com.apple.quarantine /path/to/xyz.app

您可能希望/需要使用sudo该命令,具体取决于权限。

然后Gatekeeper完全不参与。当然,这也意味着签名未经验证,这删除了重要的安全功能。


我也喜欢这个答案。可惜我只能选一个!
bonh 2013年

这适用于我手动安装的OpenJDK安装。谢谢!
fachexot
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.