-
组件化的思想就是就是将复用的代码抽取出来用cocopods来管理代码 这样当你需要使用的时候就可以直接引用过来。
-
首先我们需要了解代码如何cocopods化。然后可以让别人通过 pod search yourObject 来查找到你的组件
-
先看下图
组件化原理图.png
pod search查找文件的时候 是通过你提交到远程私有仓库的podspec描述文件进行查找的。相当于这个文件就是可以Key 而你的代码相当于Value。所以我们在podSpec描述文件中就需要包括你代码的作者、版本号、源代码地址、依赖库等信息。所以任何支持Cocopods的开源代码都必须要有podspec文件。用我们的repo进行管理.
通过命令 pod repo list 可以查看本地的repo 仓库
一下这个是cocopods的。
repo文件.png
同时我们将代码推送到另一个库中进行版本管理.
接下来我们就来实现一下如何进行cocopods管理代码
-
第一步: 创建一个代码仓库
-
第二步:创建代码并将其推送到仓库中 这个步骤里可以使用命令行进行操作也可以通过代码管理工具进行处理。
create a new repository on the command line echo "# CocopodsTestDemo" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/laotang013/CocopodsTestDemo.git git push -u origin master push an existing repository from the command line git remote add origin https://github.com/laotang013/CocopodsTestDemo.git git push -u origin master 这个作为参考 git add . git commit -m "版本号" git tag 版本号 git push origin master --tags ./upload.sh
上面的代码是直接复制githup上的代码.
我通过命令行进行操作
代码操作1.png
代码操作2.png
这样代码就推送到了githup上了
完成上面部分已经完成了大半了。 上面的那个tag号需要和你podSpec中的version相同 -
第三步 创建远程私有仓库 起到索引的作用
创建podSpec文件 通过命令 pod spec create CocopodsTestDemo 创建podSpec
podSpec说明.png
然后对podSpec进行设置.这里推荐一个脚本 感谢casa大神提供
代码连接中的ConfigPrivatePod 代码进行处理。
这里我将其中的一些描述文件拿出来说下
podSpec文件说明2.png
这个搞定之后 -
第五步:创建repo远程仓库
-
第六步: 将远程私有索引库添加到本地私有索引库
- pod repo add 名称 地址(远程私有索引库地址)
StartdeiMac:CocopodsTestDemo Start$ pod repo add MyPodSpec https://github.com/laotang013/PodSpec.git
Cloning spec repo `MyPodSpec` from `https://github.com/laotang013/PodSpec.git`
StartdeiMac:CocopodsTestDemo Start$ pod repo list 进行查看
- 第七步 将podSpec文件推送到本地索引库
-
这里你可以首先先验证一下你的podSpec 是否有效
-
使用命令 pod sepc lint
-
如果有以下报错
报错1.png -
打上tag就行
-
git tag '1.0.0' 这里的tag跟你的version相同
-
git push -- tags
-
确认没有问题之后将其加入到repo 中
-
使用命令 pod repo push [索引库名字] [ podspec文件]
-
pod repo push MyPodSpec CocopodsTestDemo.podspec
如果出现[!] Unable to find a pod with name, author, summary, or descriptionmatching `iOS\-AlipaySDK` 这样的问题 只用一下命令 rm ~/Library/Caches/CocoaPods/search_index.json
-
网友评论