美文网首页
dyld: Library not loaded

dyld: Library not loaded

作者: 老包黑黑 | 来源:发表于2019-08-05 15:36 被阅读0次

    我们在添加第三方库的时候,经常会遇到如下提示:

    dyld: Library not loaded:@executable_path/../Frameworks/XXXX.dylib

    Reason: image not found

    某个路径下dylib库无法加载,

    出现这个问题一般有两种情况:

    第一:Embedded Binaries未添加这个库

    binaries添加

    我们只需要再binaries中手动添加这个库,系统就会去自动加载这个库并识别库里的文件

    一般大多数时候可以解决这个问题.

    第二:target版本不匹配

    当我们xcode支持的系统版本和第三方库中系统支持版本不匹配的时候,也可能出现这个问题,这个时候如果需要动态识别这个文件就不能强引用这个第三方库,就如同代理一样,我们需要把这个库的识别方式改为optional可选项. 

    link binary 选项

    但是当系统版本为不支持的系统版本时候,仍然会崩溃.

    第三:最后一种需要手动copy files

    在build phases 中点击+手动添加copy files

    new copy files

    手动将不加载的三方库添加进去, 注意,第三方lib.a包或者framework包Destination 需要选择framework,不能选择resource.

    对于@executable_path执行路径,我们需要新建script phase

    new script

    我们根据自己的需要写不同的脚本使用不同的解释器,我们可以通过

    cat /etc/shells 查看系统支持的解释器. 

    例如我用到的:

    shell:bin/bash

    install_name_tool -change /usr/local/lib/(你的库name).dylib @executable_path/../Frameworks/(你的库name).dylib"$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH"

    最后:

    添加过这些设置,试试执行你的项目吧,应该能解决大多数问题了,欢迎留言相互探讨。

    相关文章

      网友评论

          本文标题:dyld: Library not loaded

          本文链接:https://www.haomeiwen.com/subject/kmsmdctx.html