xcode的惯例,每次升级,都会有一些莫名其妙的Bug产生,一运行,报错,然后就懵逼几天,折腾一番之后才能解决问题。
这几天在升级网易云信的NIMSDK,业务的UI层使用的是NIMKit。中途删除了一些自定义的UI文件,然后又添加回到项目中。当运行项目的时候,直接报错。错误截图如下:
按照惯常的处理方法,arm64,同时连接器链接失败,以为是缺失什么依赖库,手动添加NIMKit改为pod,运行,耶,问题依然。由于NIMKit依赖一些第三方的库,是不冲突了?把自己添加的第三方库注释掉,直接使用NIMKit中的,问题照旧。
然后抽出来独自创建了一个IM的Demo,pod云信的库,正常,然后导入自己写的一些控件,引用,问题重现。是不是不是因为缺乏依赖库导致的?是不是导入自定义的控件失败?查compile sources,果然没有东西。然后手动添加进去,运行正常。
是不是Xcode9自动添加编译文件时有问题?然后测试一下xCode8,添加是正常的。看来一般情况下,报m64,linker command failed with exit code 1是由于缺乏依赖库导致的,但自己导入的文件没有成功导入也会报这样的错误。最关键的是,如果不去查的话,真的不知道自己导入的控件是失败的。
顺便:网易云信的NIMKit进行pod导入,是同时包括UI和底层逻辑NIMDSDK_LITE两部分的