我们这里选择是【码云】进行我们组件化的搭建
https://gitee.com/
点击【+】号创建远端仓库
搭建本地仓库 进行连接远端仓库
1.进入CocoaPods repos文件目录下 cd /Users/主机名/.cocoapods/repos
2.连接远程仓库 pod repo add MyModuleSpec(自定义本地仓库的名字) https://gitee.com/xxxx/my-module-spec.git(大家可以去自己仓库目录下复制HTTPS路径)
3.由于我们没有设置gitee账号,要求我们输入账号密码即可
4.输入完后我们即可查看到我们创建的ModuleSpec本地仓库
在去创建我们对应的组件
1.在码云上创建 ModuleCarToolLib
接下来我们进行创建第三方库(组件化模块库)
1.我在桌面创建【Module】文件夹,cd 进去
2.pod lib create ModuleCarToolLib(库名称)
3.What platform do you want to use?? [ iOS / macOS ] 回答【iOS】
4.What language do you want to use?? [ Swift / ObjC ] 你是用什么语言开发 自选【ObjC】
5.Would you like to include a demo application with your library? [ Yes / No ] 是否愿意添加一个实例工程到第三方库中 自选【Yes】
6.Which testing frameworks will you use? [ Specta / Kiwi / None ] 是否要用到测试框架 自选【None】
7.Would you like to do view based testing? [ Yes / No ] 是否做视图测试 自选【No】
8.Possible answers are [ Yes / No ] 自选【Yes】
9.What is your class prefix? 你的类前缀是什么 自选【CM】
创建完我们第三方库 会自动打开该工程
1.前往Pods/Development Pods/ModuleCarToolLib文件夹下 修改ReplaceMe.m名称 并创建同名的.h
将本地工程和远程仓库关联
1.git init
2.touch README.md
3.git add README.md
4.git commit -m "first commit"
5.git remote add origin https://gitee.com/xxxx/module-mall-tool-lib.git
6.git push -u origin master
Push前需要设置的参数
1.找到对应名称下的XXXXX.podspec文件
2.s.version = '0.1.0' 版本号
3.s.description = <<-DESC 注解说明 DESC
4.s.homepage = '主页地址,可以是博客、简书'
5.s.source = { :git => 'xxxx.git', :tag => s.version.to_s }上传的地址
6.s.ios.deployment_target = '13.0' 开发支持的版本号
7.s.dependency 'AFNetworking', '~> 4.0.1' 依赖CocoaPods上的第三方
8.s.xcconfig = { 'HEADER_SEARCH_PATHS' => "$(SRCROOT)/AFNetworking/AFNetworking/" } CocoaPods会在引入私有库时自动在你的私有库中Header Search Paths 中加入$(SRCROOT)/AFNetworking/AFNetworking/ 方便私有库找到相对应的第三方路径
Push代码到远程仓库,打Tag 版本隔离
1.进入ModuleCarToolLib.podspec同级目录下
2.【git add .】【git commit -m '注释'】【git push】将代码上传
3.git tag '0.1.0'
4.git push --tags
检查版本是否能上传
1.pod lib lint
2.打标签 远端必须有0.1.0的tag 才能用下面一句更新
ModuleCarToolLib目录中【git tag '0.1.0'; git push --tags】
3.将我们的组件推到我们自己创建的索引页中
pod repo push MyModuleSpec ModuleCarToolLib.podspec --allow-warnings
4.最后版本都完成后给索引仓库打个标签Push
MyModuleSpec目录中【git tag '0.1.0'; git push --tags】
5.依赖第三方库使用这个Push方法
pod repo push MyModuleSpec ModuleCarToolLib.podspec --sources=https://github.com/CocoaPods/Specs --verbose --use-libraries --allow-warnings
在索引库 MyModuleSpec 目录下就可以看到我们版本号了
1.pod search ModuleCarToolLib 就可以搜索我们自己的私有库
2.如果搜不到 我们把缓存清一清 rm ~/Library/Caches/CocoaPods/search_index.json
3.或者更新相对应得索引库 pod repo update MyModuleSpec
使用CocoaPods安装我们本地库
1.进入工程目录下 pod init
2.填写 source '索引库地址'
3.pod 'ModuleMallToolLib', '~> 0.1.0'
删除Tag
1.git tag -d '0.3.1' 删除本地Tag
2.git push origin :0.1.0 删除远程Tag
更新私有索引库
1.pod repo update MyModuleSpec(这是个索引库,你可以替换成自己的)
创建的工程找到私有路的相对路径
1.$(PROJECT_DIR) --> /xxxx/xxx/工程名/Example 只能找到这一层 然而我们的私有库是和Example同级所以
2."$(PROJECT_DIR)/..//CTBCarModuleToolLib/Classes/Define/"