美文网首页
手把手教你用CocoaPods创建私有库

手把手教你用CocoaPods创建私有库

作者: 潭清 | 来源:发表于2018-11-22 17:21 被阅读17次

    最近在研究组件化开发,用CocoaPods私有库是一个不错的选择,下面我们来讲一下如何创建私有库。

    第一步:我们需要两个Git仓库:一个是私有的Spec Repo Git仓库,作用类似于CocoaPods的官方spec repo 专用来存放podspec; 另一个是私有库源码的Git仓库(可以在Git、码云等代码平台创建);

    第二步:创建私有的Spec Repo

    $pod repo add PublicModule  https://gitee.com/charlesleo/MySpecs.git

    然后可以在终端下执行:$pod repo 查看添加的repo

    第三步:创建Pod项目工程 "PublicModule"

    $pod lib create PublicModule

    然后根据问题选择选项:

    如图(1),依次回复系统提示的问题。

    图(1)

    选择完后会自动生成一个工程文件。

    第四步:

    接下来向pod文件夹中添加库文件、资源,将代码放入DevelopementPods/PublicModule/Classes中,资源文件放在Assets文件夹中,然后进入Example文件夹执行pod update命令,再次打开工程便可以看到新添加的代码,运行工程,测试组件。

    注:需要注意的是每当你向pod中添加新的文件或者以后更新podspec的版本都需要重新执行一遍pod update命令。

    测试无误后需要将该项目添加并推送到远端仓库,并编辑podspec文件。

    git add .

    git commit -m “………”

    git remote add origin git@..........    #添加远程仓库

    git push origin master             #提交到远端仓库

    因为podspec文件中获取GIt版本控制的项目还需要tag号,所以提交的代码需要打上一个tag。

    git tag -m “……” “0.1.0”

    git push origin --tags         #推送tag到远端仓库

    第五步:

    编辑podspec文件,它是一个Ruby的文件。

    先看图(2),这个自动生成的podspec文件,

    图(2)

    下面对于图(2)中的红框依次解释:

    1:s.version 这个是关联我们刚才打的tag的版本号,后面发不完版本,pod 就是通过podspec文件的这个version 找到服务器上面的tag好的代码的。

    2:s.description 这个是对该库的描述,描述要尽可能详细,方便别人能看懂这个库的功能。

    3:s.homepage 这个是我们这个库的代码仓库地址。我用的是http 格式。

    4:s.source 这个依然是我们的代码仓库地址可是ssh格式 也可以是http

    5:s.source_file 这个路径里面存放的是我们的代码文件

    6:s.resouce_files 这个默认是注释掉的,如果需要添加资源就需要放开这个。

    7:s.depency 这个是该库的依赖,比如我们这个库要引用AFNetworking  就是如图(2)所示。

    第六步:

    编辑完podspec文件以后,可以通过pod spec lint 命令来验证是否有问题。如果验证通过则提示图(3)(PS:图三来自网络)

    图(3)

    如果出现passed validation 就说明ok了 可以使用pod repo push 命令来发布到服务器了。

    如下命令

    pod repo push MySpecs PublicModule.podspec 

    #前面是本地Repo名字 后面是podspec名字

    如果push成功的话,可以使用pod search 命令搜索我们发布的私有库了。

    如下命令

    pod search PublicModule

    如果search 到了我们刚才发布的私有库,那么恭喜你,到这里你的私有库已经制作完成了。

    相关文章

      网友评论

          本文标题:手把手教你用CocoaPods创建私有库

          本文链接:https://www.haomeiwen.com/subject/heutbxtx.html