如何在macOS沙盒应用程序中使用插件中的dylibs?
我正在为一个macOS应用程序写一篇文章。我的代码使用OpenCV和我的构建过程链接到OpenCV数据库 当我作为测试应用程序的一部分构建代码时,一切都运行良好。但是,当我将代码构建为插件时,宿主应用程序无法加载插件,并出现以下错误:如何在macOS沙盒应用程序中使用插件中的dylibs?,macos,dylib,apple-developer,Macos,Dylib,Apple Developer,我正在为一个macOS应用程序写一篇文章。我的代码使用OpenCV和我的构建过程链接到OpenCV数据库 当我作为测试应用程序的一部分构建代码时,一切都运行良好。但是,当我将代码构建为插件时,宿主应用程序无法加载插件,并出现以下错误: Error loading /Library/.../MyPlugin.plugin/Contents/MacOS/MyPlugin: dlopen(/Library/.../MyPlugin.plugin/Contents/MacOS/MyPlugin, 0x
Error loading /Library/.../MyPlugin.plugin/Contents/MacOS/MyPlugin:
dlopen(/Library/.../MyPlugin.plugin/Contents/MacOS/MyPlugin, 0x0106): dependent dylib '/usr/local/opt/opencv@3/lib/libopencv_calib3d.3.4.dylib' not found for '/Library/.../MyPlugin.plugin/Contents/MacOS/MyPlugin'.
file system sandbox blocked open("/usr/local/opt/opencv@3/lib/libopencv_calib3d.3.4.dylib", O_RDONLY)
据我所知,我的插件在宿主应用程序的过程中运行,并且宿主应用程序是沙盒的(与我的测试应用程序不同),所以这个错误有点道理。但我不知道最好的解决方法是什么
我可以想到三种可能的解决方案:
brew安装
为我放置它们的地方)。这些动态库的正确位置是什么我的猜测是#3是错的,而#1是可能的,但我希望#2可能是对的。任何人都有插件、沙盒应用程序和dylibs交叉的经验吗?我能够让它与授权配置一起工作
Profile.权益
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<false/>
</dict>
</plist>
com.apple.security.app-sandbox
到目前为止,我无法在启用沙箱的情况下
dlopen
。我能够让它与授权配置一起工作
Profile.权益
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<false/>
</dict>
</plist>
com.apple.security.app-sandbox
到目前为止,我无法在启用沙箱的情况下dlopen