为什么我的应用程序将二进制文件标记为隔离?

时间:2013-03-25 18:25:23

标签: macos cocoa sandbox

我的(沙盒)OSX应用程序正在尝试启动biber(LaTeX的参考书目工具)。但是它无法启动,我收到以下消息:该应用程序已将biber标记为已在Console.App中隔离。

25/03/2013 16:44:15.000 kernel[0]: exec of /private/var/folders/s1/70f5my9n6wq0_kk7bcxjslhh0000gn/T/com.abc.XYZ/par-64756e63616e737465656c65/cache-ef42c8d5d44e40bdd24828b0ae70de275e379c88/biber denied since it was quarantined by XYZ and not approved by Gatekeeper, qtn-flags was 0x00000002

应用程序调用的任何其他二进制文件都不会发生这种情况。

此应用程序具有整个硬盘驱动器的活动SSB,因此启动或访问外部文件时没有问题。

为什么以及如何将该文件标记为隔离,以及如何删除隔离区以使其可以执行?谢谢你的帮助。

编辑如果有帮助,该目录的内容为

  • biber
  • libperl.dylib

运行ls -l @eOd会显示它们都具有com.apple.quarantine属性,但是我不确定是什么将它们复制到该目录中,或者它们是如何获得该标志的。原始副本未被隔离。

1 个答案:

答案 0 :(得分:1)

看起来这个'biber'不是从Mac App Store下载的应用程序或已识别的开发人员(使用Apple Developer ID)。因此,您必须手动允许其启动 通常有三种方法可以做到这一点:

  • 右键单击应用程序,然后从上下文菜单中单击“打开”。会有一个警告,只需点击“打开”即可。 OSX会记住您的选择,下次它会打开。
  • 您可以更改Gatekeeper的设置:“系统偏好设置” - > “安全与隐私” - > “常规选项卡。解锁以进行更改。在“允许从中下载的应用程序”部分中选择“任意位置”。 注意:它会降低安全性,并且会有关于使用第一个解决方案的提案的警告。
  • 从应用中删除“隔离属性”。在终端运行命令中:xattr -d com.apple.quarantine <your_app>

我更喜欢最后的解决方案。所有解决方案都适用于应用程序,但我认为这也适用于实用程序。