【问题标题】:mac OS file system sandbox blocked open()mac OS 文件系统沙箱阻止了 open()
【发布时间】:2017-06-19 10:20:04
【问题描述】:

我遇到了

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 缺少一些设置。

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

【问题讨论】:

  • 你解决了吗?如果有怎么办?
  • 库必须位于应用程序包的 Frameworks 目录中,而不是随机位置。

标签: macos dyld svnx


【解决方案1】:

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

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

  1. System Preferences > Security & Privacy > Privacy > Full Disk Access > “添加您的应用,例如 svnX”

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

【讨论】:

    【解决方案2】:

    上面 Richard Barber 的评论救了我的命。我也遇到了这个问题(尽管使用不同的应用程序和不同的库),但本质上是一样的。 Apple 应用程序运行是一种称为沙盒的东西,因此无法访问很多位置。我尝试添加对上述答案中指定的“全盘”和“文件和文件夹”的访问。我能够添加“全盘访问”,但“文件和文件夹”在我的相关应用程序(Microsoft Excel)上显示为灰色。所以,这对我不起作用

    最后起作用的是获取相关库的整个文件夹(在我的情况下是 mysql odbc 驱动程序)并将其复制到 /Applications/Microsoft Excel.app/Contents/Frameworks/

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-30
        相关资源
        最近更新 更多