登录组件库的封装的踩坑整理

组件库的创建可查看链接:https://www.jianshu.com/p/760d6cd46719

不知道cocoapod的podspec格式的小伙伴可以看下面的链接:https://guides.cocoapods.org/syntax/podspec.html#specification

进入正题:

由于牵扯到资源库的使用,podspec使用到了resource,资源的使用可以有多种方式,我用的是

登录组件库的封装的踩坑整理

resource

还有resource_bundles,下面是对resource和resource_bundles的比较,大家可以自行取舍:https://juejin.im/post/5a77fb8df265da4e99576702

如需把资源(如:图片和字体库)单独管理的可以参见如下:https://www.jianshu.com/p/2c7cf4fb0b30

再附上bundle的制作链接:https://blog.csdn.net/Feng512275/article/details/77982962


问题1:

由于之前用的是上家公司的git地址,所以电脑里git的信息未更新,在生成podspec的Author时候,是上家公司gitlab的地址,小伙伴可以通过下面指令修改:

git config user.name 你的目标用户名

git config user.email 你的目标邮箱名

如果生成错的别忘了homePage和source里也要改!

问题2:

如需在自己的库里用到其他库的文件,需要在.m里引用,如在.h里引用,在pod spec lint --verbose --allow-warnings报错误:include of non-modular header inside framework module

可在.h里通过@class xxx 的方式引用该类

其实很多的 warn 可以通过终端的提示去解决

问题3:

在自己的库里取资源的路径如 UIImage* image = [UIImage imageNamed:@"xxx"];取出来的为nil,需要调整为

UIImage* image = [UIImage imageNamed:@"xxx" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];

这是由于bundle不同引起的,系统默认是去mainBundle里取image的

问题4:打完tag提交之后,pod search搜索不到

1.可以通过pod setup,在pod search

2.如果还不行,则 rm ~/Library/Caches/CocoaPods/search_index.json,把search_index.json文件删除之后,再进行pod search

3.如果是先把库放到了自己建立的仓库里,那是搜不到了!可以通过新建个项目,然后在podfile文件里添加

source 'https://github.com/你的用户名/你的仓库名.git'

source 'https://github.com/CocoaPods/Specs.git'

pod '你上传的库名'

通过pod install,然后安装这个仓库到本地,再进行pod search,则能看到你上传的库了!

登录组件库的封装的踩坑整理

仓库路径

5.对了,还有个忘记提了,必须确保执行了

pod repo push <本地索引库> <索引文件名> - -verbose - -allow-warnings

我之前就忘记了这个。。。