美文网首页iOS 问题集锦
iOS 崩溃报错 dyld: Library not load

iOS 崩溃报错 dyld: Library not load

作者: 崠崠 | 来源:发表于2018-06-20 17:53 被阅读592次

    背景:由于业务需要维护大量逻辑相似但是又有细微不同的应用,之前采用多target构建相似App的做法,之后由于业务持续扩大,发现在一个控制器可能会存在多个判断,增加耦合度,增加后续维护难度。之后对项目进行重构,分别对两个项目采用了静态库(.a)和框架(framework)的方式来将相似逻辑抽离成为主干,差异化的地方,各自project中实现。这里说明一下,framework方式下,出现的崩溃错误dyld: Library not loaded: @rpath......


    崩溃页面.jpg

    在真机运行的时候, bulid成功,但是应用在启动页面就崩溃了。出现的关键错误搜索是:
    1、dyld`__abort_with_payload
    2、dyld: Library not loaded: @rpath
    3、Reason: no suitable image found
    我发生的具体错误:

    dyld: Library not loaded: @rpath/TYKYGovApprovalFramework.framework/TYKYGovApprovalFramework
      Referenced from: /var/containers/Bundle/Application/CC63B6C4-AF48-4540-9E8F-501FE7F54A4E/ZhongKai.app/ZhongKai
      Reason: no suitable image found.  Did find:
        /private/var/containers/Bundle/Application/CC63B6C4-AF48-4540-9E8F-501FE7F54A4E/ZhongKai.app/Frameworks/TYKYGovApprovalFramework.framework/TYKYGovApprovalFramework: no matching architecture in universal wrapper
    

    显示集成主干Framework错误,苹果官方是允许集成静态库,但是不允许集成动态库,在创建Framework的时候,Xcode 首先选择的是Dynamic Library


    Mach-O Type.png

    这里改为Static Library 即可。

    2018.07.01

    Static Library Archive打包成功,但是Export的时候会出现如下错误:
    Found an unexpected Mach-O header code: 0x72613c21

    Error.png

    搜索出的解决方案有:
    将静态库的添加从Embedded Binaries改为直接在Link Frameworks and Libraries添加。这样打包出来可以成功,但是依赖Framework的文件资源(图片和xib文件)加载不到。
    后面的解决方案:
    bebug模式的下的running:Framework为Static Library
    Archive(release)将Framework改为Dynamic Library
    (有大神有更好的请帮忙指出来,谢谢)

    相关文章

      网友评论

        本文标题:iOS 崩溃报错 dyld: Library not load

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