美文网首页
组件化学习1--利用CocoaPods创建私有库

组件化学习1--利用CocoaPods创建私有库

作者: 木格措的天空 | 来源:发表于2018-08-01 17:17 被阅读17次

我们先在第 一 点讲一下基于github创建库。第 二 点讲一下怎么用。最后在第三点说一下在公司内部gitlab创建私有库的不同的地方。

一、以github为远程仓库创建。

1.在github创建项目JSKlineChart

2.clone远程到本地

cd ~/Desktop
git clone https://github.com/zzyyd6316/JSKlineChart.git

3.查看一下当前有哪些本地索引库

pod repo 

4.创建本地索引库并和远程索引库做关联

pod repo add JSKlineChart https://github.com/zzyyd6316/JSKlineChart.git

5.再次查看pod repo。多了一个索引。路径为:

~/.cocoapods/repos/ 

6.在桌面随便建一个Test文件夹,创建本地代码组件模版库,组建名可以和远程代码库一致

cd /Users/zzy/Desktop/Test
pod lib create JSKlineChart

7.回答问题:

What platform do you want to use?? [ iOS / macOS ]
 > iOS

What language do you want to use?? [ Swift / ObjC ]
 > ObjC

Would you like to include a demo application with your library? [ Yes / No ]
 > Yes

Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > None

Would you like to do view based testing? [ Yes / No ]
 > No

What is your class prefix?
 > FF

你会发现自动生成了一个项目。如下。


屏幕快照 2018-08-02 上午10.17.13.png

上图中可以看到,里面有一个Example文件夹,作为例子使用,可以在本地导入库使用。这篇文章就不讲解它,可以去网上搜搜。。。你也可以把它删了。

8.删除ReplaceMe.m文件,接着把自己封装好的组件化代码的文件夹拖入到classes路径下。

屏幕快照 2018-08-02 下午4.20.57.png

9.编辑JSKlineChart.podspec文件,下图红色标记的地方需要修改

d d.png

10.把Test/JSKlineChart文件夹下面的除去 .git 文件夹外的所有文件拷贝到/Users/zzy/Desktop/JSKlineChart,提交到远程代码库并打tag.

cd /Users/zzy/Desktop/JSKlineChart
git add .
git commit -m "initpod"
git remote add origin https://github.com/zzyyd6316/JSKlineChart.git
git push origin master
git tag "0.1.0"
git tag   (查看版本号是否提交成功)
git push --tags

~~注意:一定要提交tag,一定要提交tag。不然会报" warning: Could not find remote branch 0.1.0 to clone.
fatal: Remote branch 0.1.0 not found in upstream origin "的错误。我这里是把整个所有的文件提交到了远程仓库,如下


屏幕快照 2018-08-02 上午10.13.14.png

11.通过pod spec lint --allow-warnings 命令验证podspec索引文件(注:pod lib lint是检索本地索引文件,pod spec lint 是本地和远程库同时检索)

pod spec lint --allow-warnings

验证通过结果如下:

 -> JSKlineChart (0.1.0)

Analyzed 1 podspec.

JSKlineChart.podspec passed validation.

12.验证通过后,pod repo push <本地索引库> <索引文件名> - -allow-warnings 提交索引文件到远程索引库。注意cd 到正确的push路径。

pod repo push JSKlineChart JSKlineChart.podspec

正确输出如下:

Validating spec
 -> JSKlineChart (0.1.0)

Updating the `JSKlineChart' repo

From https://github.com/zzyyd6316/JSKlineChart
 * [new branch]      master     -> origin/master
 * [new tag]         0.1.0      -> 0.1.0

Adding the spec to the `JSKlineChart' repo

 - [Update] JSKlineChart (0.1.0)

Pushing the `JSKlineChart' repo

To https://github.com/zzyyd6316/JSKlineChart.git
   8306a85..58890d7  master -> master

13.Over。。。在本地查看已成功

屏幕快照 2018-08-01 下午5.35.25.png

二、现在我们新建一个项目MyPodTest导入库试一试

1.进入MyPodTest项目创建Podfile

cd /Users/zzy/Desktop/MyPodTest
pod init

2.用vim Podfile命令或者用其他工具编辑生成的Podfile文件,我用的是xcode编辑的,编辑后内容如下:

# platform :ios, '9.0'

target 'MyPodTest' do
  pod 'JSKlineChart', :git => 'https://github.com/zzyyd6316/JSKlineChart.git', :tag => '0.1.0'
end

3.执行pod install,你会发现JSKlineChart已经导入了你的项目里面

屏幕快照 2018-08-02 上午10.03.36.png

4.现在我们就可以导入库头文件进行使用了.

屏幕快照 2018-08-02 上午10.05.42.png

5.注意一点:每次你修改了组件库代码,想提交新的版本到远程仓库时,记得带上新的tag。

git add --a
git commit -m "XXX"
git pull
git tag "0.1.1"
git push --tags  (把本地的tag push到远端)
git push

这样还有一个好处就是,当你想把库退回到之前的某个版本时。你就可以把Podfile文件里面pod 'JSKlineChart', :git => 'https://github.com/zzyyd6316/JSKlineChart.git', :tag => '0.1.0'。这句的tag修改为你想要的版本号。然后pod install。

不建议把Podfile文件里面的这句pod 'JSKlineChart', :git => 'https://github.com/zzyyd6316/JSKlineChart.git', :tag => '0.1.0'后面的tag去掉。

三、在公司内部的gitlab创建私有库,其实总的来说相关的步骤就把链接换一下就可以了。比如我公司对应的仓库链接是: git@192.0.0.0:liudehua/JSKlineChart.git 下面我只列出不相同的步骤。

4.创建本地索引库并和远程索引库做关联

pod repo add JSKlineChart git@192.0.0.0:liudehua/JSKlineChart.git

9.编辑JSKlineChart.podspec文件,红线标注的地方不同

屏幕快照 2018-08-02 下午5.49.40.png

*在用的时候Podfile这么写:

# platform :ios, '9.0'

target 'XXXXX' do
  pod 'JSKlineChart', :git => 'git@192.0.0.0:liudehua/JSKlineChart.git', :tag => '0.1.1'

end

补充:tag的管理

git tag  //查看tag
git tag test_tag c809ddbf83939a89659e51dc2a5fe183af384233    //在某个commit 上打tag
git tag
git push origin test_tag    //!!!本地tag推送到线上
git tag -d test_tag        //本地删除tag
git push origin :refs/tags/test_tag    //本地tag删除了,再执行该句,删除线上tag

参考文章:

利用Cocoapods创建基于SVN的私有库podspec

iOS代码组件化(利用CocoaPods创建私有库)

CocoaPods的使用教程

Cocoapods使用私有库中遇到的坑

利用Cocoapods创建基于SVN的私有库podspec

相关文章

  • Git 私有库的创建

    最近在学习组件化。组件化有一个方案是利用cocoapods进行管理组件。这就涉及到了specs私有库的创建、维护和...

  • cocoapods私有库创建

    最近不是很忙,所以学习了下cocoapods私有库的创建。一直都想学习组件化,现在就从创建私有库开始。下面简单做下...

  • iOS组件化-CocoaPods

    组件化练手,首先先使用CocoaPods创建本地私有库和远程私有库。CocoaPods大家都用过,那就废话不多说了...

  • 组件化学习1--利用CocoaPods创建私有库

    我们先在第 一 点讲一下基于github创建库。第 二 点讲一下怎么用。最后在第三点说一下在公司内部gitlab创...

  • 使用CocoaPods创建私有库

    最近在研究使用CocoaPods创建私有库,因为公司要使用组件化,然后打算用cocoapods来管理各个组件,那就...

  • HCMediator组件化详解

    组件化创建流程库 组件化需要创建私有spec库(索引库)、HCMediator库(App中介库)、其他组件库 私有...

  • iOS组件化探究之私有库的创建

    iOS组件化探究之私有库的创建 iOS组件化探究之私有库的创建

  • iOS 组件化-本地私有库

    CocoaPods本地私有库 组件化-使用CocoaPods管理的本地私有库,可以分为3种 本地私有引用 本地工程...

  • 组件化(一):搭建远程私有库

    组件化学习之路文章集合: 组件化(二):远程私有库的升级+依赖 组件化的话,我们一般都通过cocoapods库集成...

  • iOS组件化(利用CocoaPods创建私有库)

    1.创建私有库用来存放索引文件 2.本地索引库和远程索引库关联 通过pod repo add <本地索引库的名字>...

网友评论

      本文标题:组件化学习1--利用CocoaPods创建私有库

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