美文网首页
关于网易云信更新的疑难杂症及对策

关于网易云信更新的疑难杂症及对策

作者: Mi欧阳 | 来源:发表于2022-01-04 18:47 被阅读0次

    问题情景:
    我们有个老项目,云信的推送不管用了。经过测试,是云信的SDK版本太老了导致的。现在需要更新这个SDK。
    但当时Podfile中存在问题,我不能直接依靠cocoapods更新。(这情况有点绕)

    当初集成的时候,pod的代码片段是这样的

    pod 'NIMSDK','5.6.0'
    pod 'M80AttributedLabel'
    pod 'CocoaLumberjack'
    pod 'FMDB'
    pod 'SSZipArchive'
    

    对应的NIMSDK内容


    WeChate252e63be3f80e842ecc5a497545fb13.png

    其他的UI代码都是直接拖入项目中的。

    所以我遇到了几个坎。

    1、官方文档受挫(我没get到关键点)。

    我首先去找了官方文档,里面介绍了 'NIMSDK_LITE' 和 ' NIMKit '
    SDK开发集成
    而未正确的找到该地址,这里面才是完整的'NIMSDK'
    SDK开发集成
    下面我介绍下
    'NIMSDK_LITE' 、' NIMKit ' 、 ' NIMKit /Lite' 、'NIMSDK' 、'NIMKit/Full'
    这几个库的区别和关系

    'NIMSDK_LITE' 是' NIMKit ' 对应的SDK包,' NIMKit ' = 'NIMSDK_LITE' + UI界面+其他第三方依赖库。特性是只包含NIMSDK、没有音视频模块。
    ' NIMKit /Lite' 就是' NIMKit ',两者没差别

    'NIMSDK' 是' NIMKit ' 对应的SDK包,' NIMKit ' = 'NIMSDK' + UI界面+其他第三方依赖库。特性是包含了NIMSDK和NIMAVChat,包含了即时通讯模块和音视频模块,是完整版本的网易云信。

    2、framework文件关联变化

    项目旧的NIMAVChat文件夹中内容为


    旧的NIMAVChat内容.png

    而新的NIMAVChat文件夹中内容为


    新的NIMAVChat内容.png
    直接替换的话会因为缺少NMC、NMCBasicModuleFramework而发生报错
    所以要把这个Framework加入项目中。

    Targets->Build Phases->Copy Files,把需要的framework加入其中,编译。
    如果报 was built for iOS + iOS Simulator. 这种错误,就去Build Settings中找Validate Workspace,改为YES
    如果编译时代码出现错误,那么就去对应类中进行调整。常见的的应为SDK更新某些接口参数等发生了变化。

    3、提交App Store时发生 unsupported architectures '[x86_64]'. 错误

    原因是SDK中有x86_64架构。
    还是以NMC.framework为例
    拷贝一份,放到桌面
    cd 到 NMC.framework 目录
    查看包含什么架构 lipo -info NMC
    (这里我偷懒用了NIMSDK的图)


    查看framework架构.png

    移除 x86_64架构
    lipo -remove x86_64 NMC -o NMC
    再检查一下,是否还存在x86_64 架构
    lipo -info NMC
    如果没有x86_64架构了,就把新的framework拖入项目中,使用,重新提交App Store

    另外还可以使用Run Script对 i386 和 x86_64 架构剥离二进制的
    unsupported architectures '[x86_64]解决方法

    至此,所有问题解决

    相关文章

      网友评论

          本文标题:关于网易云信更新的疑难杂症及对策

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