IOS 真机 dyld: Library not loaded 错误Crash

dyld: Library not loaded

刚刚开始看IOS,编译项目,模拟器OK,真机 archive打包 crash.搜索了众多解决方案,百度上的太坑了,找不到适合我的,像说什么把 Targets -> Build Phases ->Link Binary With Libraries 中相应.framework 的status 改为 Optional的,我对IOS不熟都觉得不对,这样虽然可以运行,但是你用到lib方法时是找不到lib的,肯定不能这样解决。

先是参考 iOS崩溃捕捉和分析 这篇文章通过xcode : Window ->Devices and Simulators -> Devices 连接真机查看crash文件:

Termination Description: DYLD, Library not loaded: @rpath/xxxxxxxx.framework/xxxxxxxx | Referenced from: /var/containers/Bundle/Application/5C7D2BEE-AC49-45C0-87F0-5728D77B4812/aaaaa.app/aaaaa | Reason: no suitable image found. Did find: | /private/var/containers/Bundle/Application/5C7D2BEE-AC49-45C0-87F0-5728D77B4812/aaaaa.app/Frameworks/xxxxxxx.framework/xxxxxxx: code signing blocked mmap() of ‘/private/var/containers/Bundle/Application/5C7D2BEE-AC49-45C0-87F0-5728D77B4812/aaaaa.app/Frameworks/xxxxxxxxxx.framework/xxxxxxxxx’

我遇到的问题的解决方案是,将keychain 中证书的完全信任修改为 系统默认.

我的应该是一个比较小众的问题。
也就是这个答案帮助了我 https://stackoverflow.com/a/30252254

当然,出现这个问题的原因应该是很多的,虽然我没有遇到,但是稍微总结写别人给出的解决方案:

  1. Clean .(有些情况clean一下就解决了。https://stackoverflow.com/a/34542847)
  2. Targets ->Build Settings ->Build Options ->Embedded Content Contains Swift Code(我的最新版XCode是Always Embed Swifte Standard Libraries) 设置成Yes.(https://stackoverflow.com/a/26949219)
  3. Targets ->Build Settings ->Linking ->Runpath Search Path 设置成@executable_path/Frameworks (https://stackoverflow.com/a/27433337)
  4. Targets ->Genral ->Embedded binaries 将你的.framework添加进去(https://stackoverflow.com/a/24345546)
  5. https://stackoverflow.com/a/43197278在我的测试中,这个答案虽然能运行程序,但访问不到Optional 的.framework.我觉得是一个错误答案。
  6. https://stackoverflow.com/a/27326230 这个答案是说证书有问题,重新生成证书(我差点要尝试这个方案了,不过还好通过修改证书 ->信任 解决了,虽然我不清楚原因,有知道的,请留言解释下哦)

如果以上都不能解决你的问题,那你还是在https://stackoverflow.com/search?q=dyld+library+not+loaded 这里自己找找吧。

猜你喜欢

转载自blog.csdn.net/suwu150/article/details/82682593