公司统一pod版本1.4.0,因为要在老项目中接入flutter,flutter依赖的pod必须在1.5.0以上,所以被迫升级。
一、cocopods安装指定版本
cocopods安装及升级的文章随便百度就能出来,这里不做多说~
参考文章:
二、升级之后遇到的问题
pod1.4.0项目podfile文件引用:
本文引用demo为项目分享的本地组件化写的demo。其中用到友盟分享,在pod1.4.0版本没有出现任何问题,升级到1.6.1之后出现头文件找不到问题,如下:
为此自己做了一系列排查:
1、检查clean项目,删除pod库,重新pod install
2、检查framework search paths路径,检查header search path路径
3、升级UMCShare为最新版本
均未排查出问题。
最后,在主项目文件里引用#import <UMShare/UMShare.h>发现不会报错,但是在本地组件库里引用会出现'UMShare/UMShare.h' file not found的报错。
于是猜想可能是自己组件化的过程存在问题,又是一顿排查。。。
这是要逼死老夫啊~~
最后定位到组件库的podspec文件:
最后的依赖被注释掉,打开试了下,完美运行。。。。
s.dependency表示当前podspec类库对外部第三方库的依赖.如果使用pod package打包sdk时候,这里的dependency会被自动添加前缀,防止重复引用冲突.而且这里的依赖只能是pod库(公有或者私有)的内容.
后话:
当时做组件化的时候为了方便依赖的库后期升级,所以把podspec里面的依赖去掉,采用podfile里面统一pod库的指定版本,结果埋下这么大的坑。。。
感谢!
网友评论