无法加载库... 在macOS 10.15.4上阻止代码签名。

3

在我的macOS 10.15.4上运行应用程序时,出现了一个错误。

该错误为:

dyld: Library not loaded: @rpath/Frameworks/libQt5Solutions_SingleApplication-head.1.dylib
Referenced from: /Users/raulsanchez/Documents/workspace/Myapp.app/Contents/MacOS/Myapp
Reason: no suitable image found.  Did find:
/Users/raulsanchez/Documents/workspace/Myapp.app/Contents/MacOS/../Frameworks/libQt5Solutions_SingleApplication-head.1.dylib: code signing blocked mmap() of '/Users/raulsanchez/Documents/workspace/Myapp.app/Contents/MacOS/../Frameworks/libQt5Solutions_SingleApplication-head.1.dylib'
/Users/raulsanchez/Documents/workspace/Myapp.app/Contents/MacOS/../Frameworks/libQt5Solutions_SingleApplication-head.1.dylib: stat() failed with errno=1
zsh: abort      

我已删除并重新安装了我的证书,但仍然出现相同的错误。
请问有什么想法吗?
提前感谢。
1个回答

2
我在更新 Xcode(我的版本是11.4.1)后遇到了类似的问题。重新创建证书,更新授权,重启电脑,更改证书信任级别或升级 Xcode 都没有帮助。
我通过降级 Xcode(使用 Xcode_11.3.1)临时解决了这个问题。
我注意到加载失败的库没有 LC_VERSION_MIN_MACOSX/sdk。它被设置为“n/a”。然后我发现了这个问题https://bugreports.qt.io/browse/QTBUG-83100。这真的有用!
简而言之:
otool -l myApp.app/Contents/Frameworks/libMyVnaApi_x64.0.dylib  | grep -B1 -A3 LC_VERSION_MIN_MACOSX
Load command 8
      cmd LC_VERSION_MIN_MACOSX
  cmdsize 16
  version 10.13
      sdk n/a

如果没有 SDK,那么强化的运行时库验证将失败。
在我添加了链接器标志并重新构建之后。
QMAKE_LFLAGS += -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk

问题已解决:SDK 已正确设置。签名的强化应用程序可正常工作。
   otool -l myApp.app/Contents/Frameworks/libMyVnaApi_x64.0.dylib  | grep -B1 -A3 LC_VERSION_MIN_MACOSX
Load command 8
      cmd LC_VERSION_MIN_MACOSX
  cmdsize 16
  version 10.13
      sdk 10.15.4

我已经通过添加权限来解决了这个问题,但我会测试您的解决方案。它似乎更安全!谢谢 - RuLoViC
请问您可以分享一下哪个权限帮助了您吗? - Mnt DXM
1
com.apple.security.cs.disable-library-validation。但无论如何,也许您的解决方案更好,因为据我了解,权限可能会导致安全问题。 - RuLoViC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接