iOS|iOS 使用码云gitee创建cocoaPods私有库

前言 首先跟大家讲个故事哈!话说哥们我做iOS开发5年了,从外包公司干起,到现在的中小企业,基本上都是独立开发项目,平时也会去看一些最新的技术文档之类的,自认为技术上还算中等哈,毕竟也挺追逐前沿技术的,但是苦命的是有些技术因为工作环境问题没有办法深入研究。
一次很有收获的打击 前几天去面试了一家大型公司,那家伙都是问一些底层问题,有些知道的还能说写。最后问到了组件化开发。组件化开发说白了就是一种架构设计思路,奈何我没有实际经验,被问的一头雾水,最后的结果大家可想而知。当然了我后面也怼了回去:我也问了一些偏门的知识点,面试官不也是一脸懵比,因此大家都是彼此彼此,只是精通的领域各有千秋而已。
【iOS|iOS 使用码云gitee创建cocoaPods私有库】在组件化开发中,有一点是必须要会的,那就是使用cocoapods创建私有库。通俗一点讲就是:你单独做某个模块,比如登录、分享模块,然后写好之后打包成库(不打也行),并将其通过cocoapods进行私有化管理。主工程如果要引用这个模块直接通过cocoapods进行管理,这就跟平时通过cocoapods管理第三方库类似了,非常的方便。接下来开始整个流程介绍。
创建私有库 1、在终端上移动到你想创建pod库工程的路径,直接先cd到了桌面,并执行pod库的创建。命令如下pod lib create XXXX
2、回车后,系统会问你几个问题:
1.选择创建哪个平台应用
.What platform do you want to use?? [ iOS / macOS ]
2.哪种开发语言
What language do you want to use?? [ Swift / ObjC ]
3.在你的项目中是否创建一个demo工程,为了方便测试,我选择了Yes
Would you like to include a demo application with your library? [ Yes / No ]
4.测试框架选择哪一个我选了none
Which testing frameworks will you use? [ Specta / Kiwi / None ]
5.要不要做视图测试,注意,这里要想集成成功,最好选No,我在导入的时候把这里改成none才算ok了
Would you like to do view based testing? [ Yes / No ]
6.你的类名前缀,指定后所有创建的问题都会加上
What is your class prefix?
完成后的终端图片,在创建好后,系统会自动开启xcode打开项目.

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png
3、给创建的项目中的Example安装一下cocoapod,这步操作主要是为了更新一下,防止后续测试出问题

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
创建的项目目录结构
cd到Example工程目录下
cd /Users/goviewtech/Desktop/MyDemoPrintTest/Example
开始安装cocoapod
pod install --no-repo-update
4、给Example安装好cocoapds之后,打开项目进行编译测试一下,通过后进行下一步操作
5、随便copy一段测试代码,我是将代码文件copy到它的Class文件夹中的。
iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png
6、编辑后缀名为podspec的配置文件,使用文本编辑打开就可以了,
iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
配置文件
s.version:版本号,默认为0.1.0,这个看你个人喜号更改,但是要记住这个编号
s.summary:简要说明 ,这个一定要更改,不然待会提交会报错,
s.homepage:项目主页,要写成自己的,随便什么网站都可以
s.source:来源库: 需要填写一个git私有库,github,码云都可以的。我用的是码云,因为我刚好有账户,而且别人说github是收费的。
7、这里演示去码云上创建git私有库。注意:这里最好不要勾选创建READMD.md文件,因为后面将本地文件上传的时候会有冲突,我也是图个自在。

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
之前创建的一个git私有库
这个图上的私有库是上一个demo创建的,这里就不在继续创建了。
8、在配置.podspec文件时,将s.source中的路径替换为刚刚创建的git私有库路径,以下图片是上一个demo创建的,请注意。
iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
最终配置图
9、再次来到Example文件中,进行pod 更新操作
pod update --no-repo-update
10、更新后,再次打开Example项目,下图可以正常import创建的文件

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png
你们可以将demo跑起来看看能否正常运行。注意,请直接写如创建的类名,因为没有提示
11、验证pod配置文件
在提交到git仓库前需要验证
前往demo路径
cd /Users/goviewtech/Desktop/MyDemoPrintTest
输入验证命令
pod lib lint
只要出现passed validation即表明通过验证

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png
12、将demo项目上传到git私有库中

添加远程地址,即上面创建码云项目的地址,xxxx是码云的用户名,MyDemoPrintTest就是你创建的git仓库名称 git remote add origin https://gitee.com/xxxx/MyDemoPrintTest.git 添加文件 git add . 提交本地,并写描述 git commit -a -m "第一次提交 版本为0.0.1" # --allow-unrelated-histories # git pull origin maste会失败 ,提示:fatal: refusing to merge unrelated histories 原因是远程仓库origin上的分支master和本地分支master被Git认为是不同的仓库,所以不能直接合并,需要添加 --allow-unrelated-histories git pull origin master --allow-unrelated-histories 推送到码云的项目的master分支上 git push origin master 提交版本号 git tag 0.0.1 push到远程分支 git push origin 0.0.1

提交成功后的图片

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png Sepc管理库,解释如下: 假如我们~/.cocoapods/repos操作进入文件后,里面有有一个master文件夹,那个里面全部都是cocoapods公共第三方库,因此我们需要新建一个新的库文件,与master同级即可。仔细想一想,cocoapods的远程库文件其实就是在github上,现在我们电脑上安装的cocoapods的公共第三方配置文件已经全部在里面。同理...我们也得建立一个非公共的远程库,且clone下到我们电脑本地,其实就是创建的与master同级的文件,到时候里面全部都是非公开的第三方配置文件。
看一下最终效果图:

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png 现在开始创建Sepc远程git仓库,创建的原理和上面同步,注意,这时候创建一定要带一个README.md文件,不然后面会无法提交,这个暂时没去深究 下面是在码云上创建的sepc远程git仓库

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
sepc私有库 接下来在终端执行以下命令,可以理解为clone到本地仓库
pod repo add MyPrivateSpecs https://gitee.com/mayouming/MY_Specs.git
其中MyPrivateSpecs就是本地非公开第三方库的文件夹,名字为随便取的,后面的链接就是对应的远程git仓库了。
以上命令执行完毕后,就会在~/.cocoapods/repos目录下创建MyPrivateSpecs文件夹,

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png 最终操作,将之前的demo项目与MyPrivateSpecs关联起来,其实就是往文件夹中添加了私有库文件的配置文件。 pod repo push MyPrivateSpecs MyDemoPrintTest.podspec
这个MyDemoPrintTest.podspec就是你之前配置的文件,叫什么名字看你自己的,文中只是演示。
操作完成后,git远程仓库就长如下这个样子

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png 至此,私有库发布就已经结束了,现在我们可以随便找个安装好cocoapods的项目测试一下,当然你新建也是可以的。
podfile中的书写如下:
iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
podfile配置 然后安装即可:
pod install --no-repo-update

现在就可以像普通cocoapdos一样进行第三方管理了。
后续截图就不一一截了,至此讲解结束。
期间有碰到几个问题:
Failed to connect to proxy.server.com port 8080: Operation timed out,一开始我也以为是网络问题,后来我将git网络代理清除即可:
查看是否使用了代理git config --global http.proxy
取消代理git config --global --unset http.proxy
OK!谢谢,终于写完,也算做一个记录吧!后续操作也将继续更新。。。
后续,私有库的更新操作... 1、将更新的内容代码copy到class里面

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png
2、cd 到example目录下pod install 一下,进行安装测试,如果嫌慢可以这样:pod install --no-repo-update
3、提交代码:先cd .. 回到上一层目录,也就是cd 到TestCode目录下
$git add . $git commit -a -m "版本更新" [master e38226a] 版本更新 $git tag -a '0.0.2' -m "私 create mode 100644 TestCode/Classes/YMLoginTestController.h create mode 100644 TestCode/Classes/YMLoginTestController.m $git pull origin master --allow-unrelated-histories From https://gitee.com/mayouming/TestCode * branchmaster-> FETCH_HEAD Already up to date. $git push origin master ///版本号要最终和podspec中的版本号保持一致 $git tag -a '0.0.2' -m "私有库第二个版本" git push --tags

4、提交完成后,在码云中就会显示最新提交的版本0.0.2

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png 5、#####修改podspec文件,将版本号修改至0.0.2,保持提交版本一致
6、验证一下文件,
pod spec lint --private

private可传可不传

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
验证通过 7、更新本地私有的cocoapdos库,也就是前面建立的MySpecs文件。
pod repo push MySpecs TestCode.podspec

iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
上传成功
在cocoapods文件中也出现了0.0.2的版本
iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png
在码云的远程库中也添加成功了
iOS|iOS 使用码云gitee创建cocoaPods私有库
文章图片
image.png
至此,更新的也算结束了....

    推荐阅读