美文网首页Collection view
XCode14编译的Framework,在XCode13上报错

XCode14编译的Framework,在XCode13上报错

作者: 山已几孑 | 来源:发表于2023-02-23 16:03 被阅读0次

    在XCode14上编辑的库,在集中构建时编译过不去,

      "_objc_msgSend$show", referenced from:
          -[iConsoleWindow sendEvent:] in Utility(iConsole.o)
          -[iConsoleWindow motionEnded:withEvent:] in Utility(iConsole.o)
      "_objc_msgSend$synchronize", referenced from:
          -[iConsole saveSettings] in Utility(iConsole.o)
          -[iConsole initWithNibName:bundle:] in Utility(iConsole.o)
      ld: symbol(s) not found for architecture arm64
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    根据报错信息分析,ld: symbol(s) not found for architecture arm64,本以为是架构问题,但是经过检查,架构是没问题的



    其他排查过程不表

    说下结论,
    XCode14 的clang增加了一个新的特性关于msgSend的,而不向下兼容,所以在Xcode13上面报错了。
    解决方式:在framework的buildSetting里面,增加-fno-objc-msgsend-selector-stubs
    添加位置如下:

    image.png

    添加后可以发现,framework包明显增大;Xcode13可以成功对项目进行编译;

    问题:这个framework的项目,就没有办法在Xcode13上面编译通过了,会提示没有-fno-objc-msgsend-selector-stubs

    完结。

    相关文章

      网友评论

        本文标题:XCode14编译的Framework,在XCode13上报错

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