组件化集成步骤
1. 准备工作
- 完整安装 CocoaPods
- Xcode
- 本次演示是在Mac OS 10.15.6
2. 创建组件工程
pod lib create YXBase
![](https://img.haomeiwen.com/i1752462/4f42484e9967cf14.png)
- 首先需要输入你的邮箱,如果之前有登录过,就不需要输入了。
- 接下来按照下面的提示一步步输入即可,输入完成后,便可以自动打开组件工程。
3. 替换ReplaceMe,创建自己的组件类,开发在这一步。
创建完成的组件工程项目中,在Pods -> Development Pods -> YXBase 中有一个ReplaceMe.m
,这个文件需要替换成我们自己的类。
我添加了 YXBaseObjc
类
接着需要进行 pod install
将自己的类引入其中。ReplaceMe可以删掉了。
![](https://img.haomeiwen.com/i1752462/20d74a19f193725a.png)
4. 关联git
完成了本地pod依赖,但是我们肯定不会是个人开发,否则弄这个组件化的意义也不大,所以我们首先得提交到远程,一般公司里都会搭建私有仓库诸如GitLab,这里就拿GitHub来做演示。
-
需要在自己git上创建一个repository。
git init // 初始化git git add . // 将所有文件加入打暂存区内 git commit -m ‘init project’ //提交初始化工程 git remote add origin https://github.com/aThinkerbomb/YXBase.git // 本地关联git git push origin master -f // 推送远端 master。介于第一次推送直接 -f 强制推送
-
刷新git 查看是否推送成功。
5. 这个时候其实已经关联成功,可以根据git 地址引入壳工程了。
这个时候我们可以创建一个壳工程,引入 git 地址,然后 pod install。如:我创建了一个Abc工程,并pod 我的YXBaseObjc组件。
![](https://img.haomeiwen.com/i1752462/60d76514db9f9805.png)
![](https://img.haomeiwen.com/i1752462/ba69464ef4896f47.png)
6. 调用组件功能
- 引入头文件,调用
sayHello
方法,运行。 - 组件化基本完成。
区分版本号,组件引用三方框架 怎么处理?
那就需要修改podspec 文件,学习podspec语法
首先,需要版本区分需要打 tag
7. 推送 tag
git tag '1.0.0'
git push --tag
git push origin master
刷新git 仓库,查看多了一个 tag。这个tag分支就是将来提供给别人依赖的版本号分支,有了它,别人使用你的组件的时候就可以根据版本号来控制了。
8.每个版本需要修改你的podspec文件。
![](https://img.haomeiwen.com/i1752462/ad2d69dc88de3970.png)
接着push 到远端保持。这时候壳工程就可以根据tag来引入了。
一般我们在公司私有库上基本就到这一步就完成了。需要哪个组件,就直接引入pod就可以接入了。
但是如果想要类似 pod 'AFNetworking'
这种形式引入,那就需要用 trunk方式将代码发布到CocoaPods上
等待审核通过以后,其他人就可以引用了。这个就好像提审 ipa 一样特别刺激。
9. 检查本地 podspec 是否符合规则
pod lib lint --verbose
这验证期间会遇到很多问题。需要修改warning 和 error 的问题,直到出现 YXBase passed validation
说明合法。具体看NOTE和 waining 提示修改。
接下来 就是提交到cocoapods上了
pod trunk push YXBase.podspec --verbose
提交成功后会有提示:To update use: sudo gem install cocoapods --pre
。说明提交成功。
审核原来需要一个工作日左右,现在只需要几秒或几分钟。
成功后,就可以pod search到我们提交的库了。
如果搜不到,不是没传成功,是我们的本地搜索库没更新,可以先删除~/Library/Caches/CocoaPods
目录下的search_index.json
文件或者pod repo update
一下终端执行
rm ~/Library/Caches/CocoaPods/search_index.json
再执行
pod search YXBase
10. 遇到的问题:
- 第 8 步中 有个错误,homepage 地址中是没有 .git 的,需要注意。
- 第 8 步中 description 的长度需要比summary 长,要不然会提示一个warning,无法通过。
- 在第 9 步中,如果在检验podspec文件的时候出现 You need to register a session first 提示,需要你注册trunk,需要你提供你的git账号并进行验证。
//在终端执行 执行过着步骤你的邮箱会收到一个链接点击即可
pod trunk register xxxxx@163.com 'xxxxx' --verbose
//xxxxxx@163.com 你接收邮件的邮箱
//xxxxxx 你起的名字
//在点击邮件中的链接后执行
pod trunk me
- 有可能会碰到一些错误,根据提示一个一个修改验证成功了。加上 --allow-warnings 可以忽略掉一些警告。
网友评论