问题描述:
1.一下以ShareSDK为例;
2.集成类似于ShareSDK时,是分两个或着说多个步骤集成的,一个是主框架ShareSDK,一个是库文件MOBFoundation,还有其他需要分享的第三方库,这里有微信、QQ、微博等;
3.Podfile中写pod为主框架ShareSDK没有设定版本限定,库文件MOBFoundation有版本限定,其他第三方库没有版本限定;
4.在更新的时候,主框架和第三方库分别被pod检测到最新版本,但是库文件MOBFoundation被版本限定,即便有新版本也没权限下载集成;
5.造成:
1.程序编译的时候可以正常编译;
2.运行的时候,会报错主框架错误,错误信息正是标题:unrecognized selector sent to class后面会跟地址编码;
解决方法:
1.一定要先检查是否集成有错误,是否上传第三方官网所需的Bundle Identifier或者推送所需等证书;
2.检查报错信息,网上有说是否添加Other Linker Flages中的-ObjC,也是有帮助,但是可以省略,因为报真正的缺少-ObjC时,连编译都不会通过;
3.核对Podfile文件中,是否有哪一组第三方有部分版本限定。
4.如果有,那么是主要问题,解决如下:
1.将Podfile中的相应pod语句复制出来,删除此语句;
2.执行pod install语句,此时显示remove文件;
3.执行pod cache语句,清除pod缓存;
4.执行vim Podfile语句,将刚复制出去的pod语句粘贴回来,去掉同一组中的限定版本语句,例如 :'~> 4.0.2‘
5.执行pod update语句,更新pod文件;(个人觉得update和install是一个意思,因为都达到了一个目的)
6.情理一下xcode的缓存,编译,运行,如果一切顺利,可以成功。