CocoaPods远程私有库从0到1

原文地址

1、创建主工程

path: /Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject/MyMainProject.xcodeproj

2、在码云上创建一个自己的远程私有索引库,用来存放私有框架的详细描述信息xxx.podspec文件

CocoaPods远程私有库从0到1_第1张图片

3、 创建本地的私有索引库文件夹,并与远程私有索引库进行关联

3.1 $ pod repo(查看本地已存在的索引库)

master
- Type: git (master)
- URL:  https://github.com/CocoaPods/Specs.git
- Path: /Users/Funky/.cocoapods/repos/master

3.2 添加本地私有索引库并与远程私有库

$ pod repo add MyProjectSpec https://git.oschina.net/funky_hs/myprojectspec.git

3.3 再次查看本地已存在的索引库 $ pod repo

CocoaPods远程私有库从0到1_第2张图片

4、 在代码托管平台码云创建一个用来存放项目基础组件的仓库MyProjectBase

CocoaPods远程私有库从0到1_第3张图片

5 、快速创建模板测试工程(测试基础组件)

5.1 快速创建模板测试工程 在/Users/Funky/Desktop/CocoaPodRemoteLib路径下

cd /Users/Funky/Desktop/CocoaPodRemoteLib
$ pod lib create MyProjectBase (快速创建) 
CocoaPods远程私有库从0到1_第4张图片

5.2 填写以上信息后Xcode会自动打开测试工程,在测试模板工程文件夹下,我们可以看到如下:

CocoaPods远程私有库从0到1_第5张图片

5.3 用Category去替换Replace.m文件,在回到Example路径下,重新执行pod install操作

$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase/Example 
$ pod install

此时打开模板测试工程,我们可以看到Pods > Development Pods > MyProjectBase > MyProjectBase > Classes > Category > (.h .m)
我们可以在模板测试工程中进行修改和操作!

6、上面的模板测试工程,提交到第四步创建的远程代码仓库

$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase 
$ git status
$ git add .
$ git commit -m'基础组件测试工程'

编辑MyProjectBase 模版工程的MyProjectBase.podspec文件

CocoaPods远程私有库从0到1_第6张图片
$ pod lib lint (验证上一步编辑的 MyProjectBase.podspec文件)

如果有ERROR,则需要去一个个修改完成,例如某个Category的.m文件没有正确的引入依赖库等都会造成ERROR,解决好所有的ERROR后,验证结果如下:


CocoaPods远程私有库从0到1_第7张图片

这是一个警告,目前也并没有找到合适的解决办法,我们添加 --allow-warnings进行忽略

$ pod lib lint --allow-warnings

此时 MyProjectBase passed validation. 则说明验证通过

$ git status
$ git add .
$ git commit -m '编辑spec文件'
$ git remote add origin https://git.oschina.net/funky_hs/myprojectbase.git (将本地库与远程代码仓库进行关联)
$ git push origin master  (提交到远程仓库)
$ git tag '0.1.0' (要与MyProjectBase.podspec文件中的tag值保持一致)
$ git push --tags(将tag提交到远程)
$ pod spec lint --allow-warnings(验证远程是否正确,注意:Username与Password一定要填写正确)

如果 Username与Password 填写不正确,则:

-ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/bin/git clone http://git.oschina.net/funky_hs/myprojectbase.git /var/folders/d_/1bsk9q6n63zgbj5cwjg4m_wr0000gn/T/d20170427-3621-13rl3wf --template= --single-branch --depth 1 --branch 0.1.0

MyProjectBase.podspec passed validation.  表明验证通过

7、将podspec文件提交到本地的私有索引库

$ pod repo
CocoaPods远程私有库从0到1_第8张图片
$ pod repo push MyProjectSpec MyProjectBase.podspec
CocoaPods远程私有库从0到1_第9张图片

表示提交成功,此时远程私有库到此就已结束
注意:提交后,依然会验证 podspec文件,验证通过后 会自动上传到在远程spec索引库,不信的话你可以看看在第二步创建的Spec远程私有索引库,是不是多了一个MyProjectBase/ 0.1.0文件!

8 、主工程利用Pods使用我们自己的私有框架

$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject
$ pod init

用Xcode打开编辑Podfile文件

CocoaPods远程私有库从0到1_第10张图片
$ pod install

打开MyMainProject.xcworkspace,此时在pod中可以找到远程私有库的代码

9 、添加及修改基础组件内容

如下图:


CocoaPods远程私有库从0到1_第11张图片

在本地的基础组件的Classes路径下 又新增了两个文件夹(Base,Tool)

$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase 

编辑MyProjectBase 模版工程的MyProjectBase.podspec文件

CocoaPods远程私有库从0到1_第12张图片
$ git status
$ git add .
$ git commit -m'新增Base,Tool文件内容'
$ git push origin master (提交到远程)
$ git tag '0.2.0'
$ git push --tags
$ pod repo push MyProjectSpec MyProjectBase.podspec

$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject

修改Podfile文件

CocoaPods远程私有库从0到1_第13张图片
$ pod install

10、 在基础组件MyProjectBase内部生成子库

问题描述:当我们执行完第九步后,我们发现主工程的Pods中并没有按文件夹(Base,Category,Tool)进行不同类的划分,同时当我们仅仅想引入一个Category库时,连同Base,Tool也引入进项目中,这就太恶心了!
参照AFNetworking

CocoaPods远程私有库从0到1_第14张图片

修改MyProjectBase.podspec文件

CocoaPods远程私有库从0到1_第15张图片
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyProjectBase
$ git status
$ git add .
$ git commit -m'生成子库文件夹'
$ git push origin master (提交到远程)
$ git tag '0.2.0'
$ git push --tags
$ pod repo push MyProjectSpec MyProjectBase.podspec
$ cd /Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject

修改Podfile文件

CocoaPods远程私有库从0到1_第16张图片
$ pod install

就现在 快打开主工程看一看吧!

有不理解或者发现博主存在理解操作不正确的地方,欢迎评论,我会及时修正!

你可能感兴趣的:(CocoaPods远程私有库从0到1)