Reason: image not found崩溃报错

6,453 阅读1分钟

项目接入视频IM需要用到MobileRTC包,加入后运行项目直接崩溃报如下错误

1、报错信息

dyld: Library not loaded: @rpath/MobileRTC.framework/MobileRTC
  Referenced from: /var/containers/Bundle/Application/82FB6F9E-5C4C-4E7C-9863-7347708F40C8/Runner.app/Runner
  Reason: image not found
具体意思就是MobileRTC这个库没有加载,找不资源。

报错信息

如果只是单存的把Target ->Build Phases -> Link Binary With Libraries下的包的状态修改为Optional状态,当使用到这个包的时候还是会崩溃。

原因如下:

修改成Optional状态可以运行但是遇到会崩溃的原因是frameworkStatus分两种

  • Required:强引用(一定会被加载到内存,当运行的时候加加载)
  • Optional:弱引用(在被需要的时候才会被载入到内存)

所以项目运行到用到崩溃包的地方时还是会crash。所以需要下面的解决办法,直接把包嵌入到项目中。

2、解决办法:

Target ->Build Phases -> Embed Frameworks添加刚才报错的库。Destination要选择Frameworks不然也会崩溃。

解决办法

添加好后,运行👌,顺利运行项目。