首先我们来为项目创建一个关于题库的功能组件LYQuestionKit。在桌面创建一个名为Demo的文件夹,使用终端切换到该文件夹目录下。
pod lib create LYQuestionKit //执行下面的命令pod会自动把https://github.com/CocoaPods/pod-template.git 远程的模板clone到本地
复制代码
把想要分享的(.h,.m)文件放在ReplaceMe.m 同级目录,删除ReplaceMe.m文件。
如果你正在面试,或者正准备跳槽,不妨看看我精心总结的iOS大厂面试资料:https://gitee.com/Mcci7/i-oser 来获取一份详细的大厂面试资料 为你的跳槽加薪多一份保障
2、开发完后把组件代码与远程仓库关联2.1、在公司的git服务器(或者GitHub上)创建一个LYQuestionKit仓库。
2.2、首先在终端上切换到桌面的Demo文件夹,然后切换到LYQuestionKit项目目录下,执行下面的命令。
2.3、把LYQuestionKit项目和git服务器远程的仓库关联,并把代码推到git服务器上。
//从命令行创建一个新的仓库
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com:99/zly/LYQuestionKit.git
git push -u origin master
复制代码
3、打tag
为当前开发的组件代码设置tag、tag版本号和podspec的 s.version两者必须统一。
git tag '0.0.1' && git push --tags //每次提交更新都需要更新
复制代码
4、配置podspec
配置podspec包括 source_files、dependency、source、version等信息,若有子文件夹想要设置子模块,需要配置subspec,对编辑好的podspec进行验证。
//1、配置podspec格式如下
//pod名
s.name = 'LYQuestionKit'
//版本号
s.version = '0.0.1'
//要分享源代码的仓库地址,可以是自己的私有仓库
s.source = { :git => 'https://github.com:99/zly/LYQuestionKit.git', :tag => s.version.to_s
//源文件地址
s.source_files = 'LYQuestionKit/Classes/**/*'
//设置第三方库的依赖
s.dependency 'FMDB', '~>2.7.2'
//子模块
s.subspec 'LYConfig' do |s|
s.source_files = 'LYQuestionKit/Classes/LYConfig/*'
s.public_header_files = 'LYQuestionKit/Classes/LYConfig/*.h'
end
//2、找到Example下面的podfile文件进行pod install
//3、验证podspec是否正确,pod lib lint 不会访问网络
pod lib lint --allow-warnings #本地验证,如果验证成功会提示LYQuestionKit passed validation.
复制代码
5、发布到 Cocoapods
//1、验证 `podspec` 文件信息是否可以通过验证 pod spec lint checks the external repo and associated tag.
pod spec lint
//2、提交之前要先通过 trunk 注册生成一条会话,点击邮箱验证,不然第三步过不了
// pod trunk register 邮箱 用户名 描述
pod trunk register 437001178@qq.com zhouluyao --description=LYQuestionKit题库
//3、将 podspec 提交给 CocoaPods 了,这个文件将是别人搜索你的组件的索引。
pod trunk push LYQuestionKit.podspec --allow-warnings
//4、搜索不到的解决方案
pod search LYQuestionKit
[!] Unable to find a pod with name, author, summary, or description matching `LYQuestionKit`
如果搜索不到,删除本地的搜索文件,命令 :
rm ~/Library/Caches/CocoaPods/search_index.json
重新 search 产生新的搜索文件。
复制代码
组件代码发布新版本则需要打新的 tag,重新编辑 podspec 文件,然后再次提交给 CocoaPods。
参考资料: iOS 组件化
作者:zhouluyao
链接:https://juejin.cn/post/7045662353158537247
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)