美文网首页
1、集成framework报错Undefined symbols

1、集成framework报错Undefined symbols

作者: LYPC_下里巴人 | 来源:发表于2019-11-21 19:33 被阅读0次

    我使用的Xcode是这样式儿的:

    Xcode版本

    1、集成framework报错Undefined symbols for architecture armv7#

    合作伙伴发来的framework集成到我们胖杂大的项目里面之后,真机跑起来 没有问题 棒棒的 ,然后打包发测试,接着就报错了: command+b也报错 直接打包也报错 同一个错误,见下图:很明显是 这个framework的原因,我的项目有要armv7 但是这个framework是arm64。
    (armv7,armv7s和arm64,i386,x86_64这些都代表什么网上好多资料 可以搜索了解一下,包括xcode配置Architecture的原因建议都了解了解)

    Pasted Graphic 4.png

    为了进一步确定自己想的对不对,使用lipo -info 查看framework架构信息看看, 使用下面俩方式的命令查看

    cd  /Users/LYPC/Desktop/qibeiSDK/QiBeiNewSDK.framework
    lipo -info QiBeiNewSDK
    或者
    lipo -info /Users/LYPC/Desktop/qibeiSDK/QiBeiNewSDK.framework/QiBeiNewSDK 
    

    运行结果如图所示:可以看到每个framework支持的架构都有哪些

    Pasted Graphic 2.png

    到此 可以得出如何解决:
    1、重新制作这个framework,增加armv7架构的支持;
    2、把自己项目里面的armv7删除了;

    Pasted Graphic 5.png
    处理好之后 运行 没问题、编译没问题,然后进行打包。
    好吧 又出问题了:IPA processing failed

    2、Xcode11打包报错IPA processing failed#

    原因:项目使用的SDK支持了i386、x86_86架构,iOS13不支持模拟器架构了,所以必须强制去除!!

    去除方法:
    1、使用低版本的Xcode打包,低于Xcode11就可以了;
    2、去除对一个sdk中的i386、x86_86架构;

    第2种方法 这个得在项目里面一个一个排查了,以我的demo为力 我查看了所有里面的framework(自制的都是),发现这两个是含有i386、x86_86的:

    删除i386、x86_86支持:
    lipo -remove i386 AipOcrSdk -o AipOcrSdklipo -remove x86_64 AipOcrSdk -o AipOcrSdk
    把所有含有i386、x86_86的sdk这么去除之后 从新打包即可。

    相关文章

      网友评论

          本文标题:1、集成framework报错Undefined symbols

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