Cocopods 创建自己的第三方库

2018年 iOS组件化其实是大家提的最多的一个事情,最近准备抽空整理公司的代码将基础的部分抽取出来做成一个单独的库来管理和维护为之后的组件化做准备。本次记录的是在通过cocopodsgithub 来做的演示。
建议阅读时间:30mins


  • 创建spec项目,抽取代码。

    1.检查cocopods安装

    在开始之前首先得确认电脑上面安装了cocopods,可通过使用下面命令来验证:

    pod --version
    

    如果出现了版本号就说安装了cocopods

    StdeMacBook-Pro:~ stw$ pod --version
    1.5.0
    
    2.创建sepc

    在终端执行以下代码

    //进入存放库的文件夹内
    cd /Users/stw/Desktop/cocospodskit
    //xxxx 为自己第三方库的名称 
    //这里需要注意一点 xxxx  这个名称需要注意是唯一的不能重名 
    pod lib create xxxx 
    

    执行完毕后就等待 系统从https://github.com/CocoaPods/pod-template.git 上面克隆模板下来。大概等了几十秒后就会出现下图所示的的操作时,依次回答即可。



    创建完毕后Xcode会自动的为我们打开刚刚创建的项目。这时恭喜你离成功就会更近了。以上只是一些最基本的配置,详细的配置可查阅官方文档。

    Tip-踩坑点
    我们在执行 pod lib create xxx 应当注意一点 xxx 名称千万不要取别人使用过的,CocoaPods不允许有重名的公有库存在。 所以在create前先 pod search xxxx 查询一下是否存在。切记切记!

  • 上传代码至Github创库

    1.创建github远程仓库

    这个一步很简单就不图文并茂了,是在不懂google一下!

    2.同步代码

    这里有两种方式来处理 1、使用命令 2、使用SourceTree 各有各的好处 下面我主要是介绍命令的方式。直接来命令

    //进入第三方库的目录
    cd /Users/stw/Desktop/cocospodskit/WTBaseTool
    // 创建本地仓库
    git init 
    // 将代码添加至缓存区域
    git add .
    // 提交至本地仓库
    git commit - m 'first commit WTBaseTool code'
    // 添加远程仓库地址
    git remote add origin https://github.com/SiterZzz/WTBaseTool.git  //仓库地址换成你的
    // 提交到远程仓库
    git push origin master
    // 给仓库打标签  这里后续  spec 会用到  很重要
    git tag '0.1.0'
    // 查看tag 
    git tag 
    // 将所有的tag提交到远程
    git push --tags
    

    然后再登陆你的远程仓库看是不是有代码合标签。确定无误后那么恭喜你离成功更近了一步。第一次就能能顺利到达这一步的其实很少,在操作的过程中或多或少都会遇到那么一点问题,但是当我们遇到了问题或许心里面就开始气馁,可能就开始怀疑自己这么一个小问题都不能解决,当然也有一小部分人直接就从入门到放弃了。其实不然,很多东西都是一个过程,你只知道别人很顺利的完成了,但是台上一分钟台下十年功的这句老话就是一个很好的诠释。究其原因遇到问题就是对其原理的不熟悉,很多概念性的问题没有搞懂,只要花点心思去查阅资料,在遇到问题时再坚持一下再坚持一下,或许成功就在下一秒。

    Tip-踩坑点
    在创建仓库的时候建议在add a license的时候选择 none 因为我们在 pod lib crate xxx 的时候会自动给你创建一个license 这样就不会冲突 当然你也可以在创建的选择license 只是在push的时候把冲突给解决了 具体的解决方法:打开库文件里面的README.md 吧冲突代码去掉即可。

  • 注册trunk

    // --verbose 打印详情信息
    // pod trunk register 邮箱 '你的名称' --verbose
    pod trunk register 750692607@qq.com 'xxxx' --verbose
    

    然后去验证邮箱,访问邮箱里面给的地址即可。

  • 提交spce到本地(本地会自动同步到cocopods)

    执行pod trunk push后会有一个验证的过程,如果提示没有通过,有ERROR我们根据ERROR的提示进行修改好后重新push,如果只是WARN可以选择在pod trunk push后面加上–allow-warnings来忽略它们

    pod trunk push WTBaseTool.podspec --allow-warnings  //WTBaseTool 换成你的库名称
    

    如果上传成功后还是无法search的话 可以执行下面的命令

    rm ~/Library/Caches/CocoaPods/search_index.json
    

    然后在 pod search WTBaseTool 即可查询到自己的框架。