iOS开发中pod库的创建

模块化开发,创建pod库是必须的,这里记录一下创建过程。

以创建私有库为例

1.以安装了pod为前提。在用户下的隐藏文件夹中会有.cocoapods文件

新建的私有仓库也会在这目录下,WBPod就是我试验的

pod隐藏文件

  • 首先需要一个Git地址(例如:https://gitee.com/wbtuxi/WBPod.git)。
    我是在码云建的仓库,当然GitHub、coding、gitlab都是一样的

  • 私有库创建需要绑定一个Git地址,执行如下命令,就会生成一个你自己命名的pod spec repo,如上图的WBPod就是这样生成的。

pod repo add WBPod https://gitee.com/wbtuxi/WBPod.git

2.再次用码云创建一个私有仓库

这次的Git地址 https://gitee.com/wbtuxi/WBPodTest.git

  • 找一目录下执行如下命令 ,会生成pod依赖项目
 pod lib create WBPodTest(项目名称)
  • 之后会让你选择几个属性,按需求输入选项就好了


    项目文件
  • 项目建好,用命令提交到Git,逐次执行命令
git add .
git commit -s -m "Initial Commit of Library"
git remote add origin https://gitee.com/wbtuxi/WBPodTest.git
git push origin master

我测试时最后一条没有通过,应该是README文件冲突,可以换成git push origin master -f 或者 git push -f(参考 https://www.jianshu.com/p/681a879745e4)

这里成功后,可以说用些版本控制工具继续打理像sourcetree

  • 接着编辑项目的podspec文件


    podspec

    有几个需要明确的地址


    默认GitHub的,我这里改了码云的
  • 项目文件(WBPodTest)下执行 如下命令,校对文件
pod lib lint  

如有警告:[!] DemoPodSpecs did not pass validation, due to 2 warnings (but you can use --allow-warnings to ignore them).You can use the --no-clean option to inspect any issue.
解决办法

 pod lib lint --allow-warnings
  • 没有错误,校队成功显示passed validation,就可以添加代码试试了
    base

    代码必须添加到Classes文件夹,资源放Assets,不然会找不到。

添加些代码推送远程仓库,这里用sourcetree 打个标签


新建标签

推送远程仓库就可以了。

3.有些博客没有写1与2的两个仓库的关系

一般第1个是你整个pod库的描述信息,包括作者、版本、license、地址等,按我理解就像个索引,让引用你库的项目更快的找到。现在让两个库建立联系。

$ pod repo push WBPod WBPodTest.podspec  #前面是本地Repo名字(即1), 后面是podspec名字
这个命令出现了警告
#如果有相同警告,使用这个命令
pod repo push WBPod WBPodTest.podspec --verbose --use-libraries --allow-warnings

这样成功后,两个仓库便有了联系

可以去第1个仓库本地目录下看看是不是有了第二个仓库的.podspec

现在创建一个新工程 实验一下,我们创建的私有仓库能不能用

pod search WBPodTest

或者新建项目

新建项目下初始化pod,会有Podfile文件生成

 pod init

podfile 文件添加

pod 'WBPodTest',:git => 'https://gitee.com/wbtuxi/WBPodTest.git'
#私有仓库,必须要添加地址,是与公库不同的地方

在podfile的顶部添加

source 'https://github.com/CocoaPods/Specs.git'  #官方仓库的地址
source 'https://gitee.com/wbtuxi/WBPod.git'  #我们自己的私有spec仓库1的地址

如图


Podfile

保存,重新在新工程下

 pod install

到这里基本就完成了,这是我翻博客总结的自己的流程和问题,可能过程中的问题不太相同,希望对需要的有所帮助。

你可能感兴趣的:(iOS开发中pod库的创建)