mac OS 文件系统沙箱阻止打开()

问题描述 投票:0回答:5

我遇到了

dyld: could not load inserted library '/usr/local/lib/dgagent/libpreload.dylib' because no suitable image found.  Did find:
    file system sandbox blocked open() of '/usr/local/lib/dgagent/libpreload.dylib'

多个应用程序出现错误 - svnX(例如,尝试导入目录时)、SnailSVN(尝试在安装过程中运行测试时)。看起来像这样

file system sandbox blocked open()
因此不是特定于应用程序的,而是我的 Mac 缺少一些设置。

有人遇到同样的问题并找到解决方法吗?

macos dyld svnx
5个回答
5
投票

在 10.15 及更高版本中,桌面、文档等文件夹需要“文件和文件夹访问”

设置访问权限的两个步骤:

  1. 系统偏好设置>安全和隐私>隐私>完整磁盘访问>“添加您的应用程序,例如svnX”

  2. 系统偏好设置>安全和隐私>隐私>文件和文件夹>“添加您的应用程序,例如svnX”


2
投票

上面理查德·巴伯的评论救了我的命。我也面临这个问题(尽管使用不同的应用程序和不同的库)但本质上是相同的。 Apple 应用程序运行称为沙箱,因此无法访问很多位置。我尝试添加对上述答案中指定的“完整磁盘”和“文件和文件夹”的访问权限。我能够添加“完整磁盘访问”,但“文件和文件夹”在我的相关应用程序(Microsoft Excel)上呈灰色显示。所以,这对我不起作用

最后有效的是获取相关库的整个文件夹(在我的例子中是 mysql odbc 驱动程序)并将其复制到 /Applications/Microsoft Excel.app/Contents/Frameworks/

TL;DR:将有问题的库复制到该应用程序目录中的 Frameworks 文件夹,然后应用程序应该能够访问它


0
投票

理查德·巴伯的评论是正确的答案。

例如,如果您有一个名为 SomeApp 的应用程序,并且它需要由 Homebrew 安装的库,那么解决方案是

cd /Applications/SomeApp/Contents/Frameworks
ln -s /opt/homebrew/Cellar/some-lib/lib/some.lib.dylib

这将安装应用程序使用的库

如果 SomeApp 被硬编码为使用

/usr/local/lib
那么,您需要执行以下操作

sudo su -
cd /System/Volumes/Preboot/Cryptexes/OS/usr/lib/
cp /opt/homebrew/Cellar/some-lib/lib/some.lib.dylib .

然后,注销,当您重新登录时,应用程序应该可以工作


0
投票

@Gentle.Zhang 的答案对我有用。我在启动虚幻引擎 5 时遇到问题。


-2
投票

这是 Apple Gatekeeper 在 Hardened 运行时上常见的限制。随着 MacOS catalina 推动公证应用程序,这种情况有所增加。

© www.soinside.com 2019 - 2024. All rights reserved.