iOS私有库创建(从0到1)

iOS私有库创建(从0到1)_第1张图片
cocoapods.jpg

前言

因为公司项目中引入私有库很久了,一直想写一篇关于创建私有库的步骤总结。这几天正好比较闲,在同事Bartholomew大熊的帮助下,完成了这篇文章。
具体私有库是什么,就不再赘述,直接开始创建私有库啦。

下面我们就直接开始!Go!

详细步骤

1.创建私有库
首先我们要创建两个私有仓库。一个仓库是存放代码的仓库JATestKit(带上README.md和LICENSE),一个是索引库JAPrivateRepos,两个库的关系就好比AFNetworking和cocoapod的关系,换句话说,你的索引库对于你的代码库来说,就相当于cocoapod,你创建的所有代码库都存放在索引库里。
因为GitHub的私有库需要收费,我这里使用的是coding.net创建的私有库。
创建私有库的步骤在这里就不详细写了......因为太简单了~

iOS私有库创建(从0到1)_第2张图片
创建私有代码库和索引库.png

创建完成之后,我们先不管代码库。先将索引库添加到本地的cocoapods/repos目录下。
到在终端中执行如下命令

cd .cocoapods/repos
pod repo add JAPrivateRepos https://git.coding.net/Plotac/JAPrivateRepos.git

即pod repo add +你的索引库名称 +索引库地址

回车,出现如下所示就成功辣~

clone索引库.png

此时可以进入.cocoapods/repos目录下验证一下是否创建成功

iOS私有库创建(从0到1)_第3张图片
验证已有JAPrivateRepos啦.png

今后你的所有私有库,在不更改索引库的情况下,都会在这个文件里。
Nice!Next!

2.创建Pod项目工程文件
接下来要创建podspecs代码库 ,代码如下

pod lib create JATestKit_Local

即pod lib create +代码库名称。
我这里把它放在了桌面。
执行命令,成功后,桌面就会出现
JATestKit_Local文件夹了。

紧接着,终端上会出现几个问题,如下图

iOS私有库创建(从0到1)_第4张图片
问题.png

全部回答完之后,会自动执行pod install命令创建项目并生成依赖。若出现下图所示,说明Pod项目工程文件就创建成功了!

iOS私有库创建(从0到1)_第5张图片
Pod工程文件创建成功.png

3.配置Pod项目工程文件
打开我们刚刚clone下来的 JATestKit_Local。

JATestKit_Local -> Example -> JATestKit_Local.xcworkspace

展开Podspec Metadata文件,点击JATestKit_Local.podspec,开始编辑。

iOS私有库创建(从0到1)_第6张图片
编辑Pod工程文件.png

编辑完之后,我们可以验证一下这个文件是否可用。cd到这个文件中,执行一行命令:

pod lib lint JATestKit_Local.podspec

出现如图所示的情况,就是成功了哟~

iOS私有库创建(从0到1)_第7张图片
验证成功.png

如果没有成功,就要重新编辑,把warning和error全部消除。

4.向私有库中提交Pod工程文件
现在我们的Pod工程文件podspec已经制作好了。
打开JATestKit_Local.xcworkspace,我们在如图所示的目录下创建一个类JATestClass,记得要把里面Classes里面自动生成的ReplaceMe.m文件删除~

iOS私有库创建(从0到1)_第8张图片
目录.png

我们在JATestClass.h文件中声明一个方法,并在.m文件中实现它。

.h中
- (void)ja_test;

.m中
- (void)ja_test {
    NSLog(@"Private Specs:success");
}

等一下我们就用这个方法来验证私有库是否可用。
接下来,就该将代码上传到coding.net的仓库里啦~

命令如下:

git add .
git commit -m "commit"
git remote add origin https://git.coding.net/Plotac/JATestKit.git
git push -u origin master

然后,在push的时候,华丽丽的失败了- 0-。

iOS私有库创建(从0到1)_第9张图片
Push失败.png

这是因为仓库里的README.MD、LICENSE和我们podspecs里的冲突了。
解决冲突:

git pull origin master
git pull origin master --allow-unrelated-histories

然后解决冲突之后再提交

git add .
git commit -m 'commit2'

并且重新push到git上去。

命令:

git pull origin master
git push -u origin master

tips:如果中间出现错误可用如下命令查看状态

git status

成功以后,coding.net上就有了我们的代码了~

iOS私有库创建(从0到1)_第10张图片
code上传成功.png

5.标记tag
code上传成功以后,标记tag

git tag 0.1.0
git push origin 0.1.0
iOS私有库创建(从0到1)_第11张图片
标记tag.png

6.将私有库放到索引库里
在第一步中,我们已经将索引库clone到了我们的cocoapods/repos目录下了。
cd到JATestKit_Local,执行命令:

pod repo push JAPrivateRepos JATestKit_Local.podspec

即pod repo push +索引库名 +podspec名

出现下图,说明你就大功告成了,撒花,鼓掌


iOS私有库创建(从0到1)_第12张图片
大功告成咯.png

验证一下:

pod search JATestKit_Local
iOS私有库创建(从0到1)_第13张图片
bingo!.png

至此,私有库的制作就完成了。
7.验证
接下来,我们新建一个工程PrivateSpecsTest,测试一下是否正常使用。
Podfile:

source 'https://git.coding.net/Plotac/JAPrivateRepos.git'
platform :ios, '8.0'
target 'PrivateSpecsTest' do
        pod 'JATestKit_Local', '0.1.0'
end

然后:

pod install

打开工程后就发现导入成功啦~:

iOS私有库创建(从0到1)_第14张图片
导入成功.png

在ViewController里,导入头文件

#import "JATestClass.h"
- (void)viewDidLoad {
    [super viewDidLoad];
    JATestClass *obj = [[JATestClass alloc]init];
    [obj ja_test];  
}

Command+R ..
控制台输出:

控制台输出.png

干的漂亮!
8.更新版本
私有库已经制作成功了,现在我们就要对自己的库进行更新维护,提交新版本~
打开例子工程:

JATestKit_Local -> Example -JATestKit_Local.xcworkspace

比如说,我们要给我们的JATestClass类扩充一个新的方法。

.h中
- (void)ja_newTest;

.m中
- (void)ja_newTest {
    NSLog(@"Update Success");
}

点击JATestKit_Local.podspec,开始编辑:

iOS私有库创建(从0到1)_第15张图片
更新.png

如果你的更新有很多内容,可以在详细介绍里面完善,这里只做一个例子。
更改之后,提交:

git add .
git commit -m 'commit666'
git pull origin master(先拉一下代码,防止多人开发的时候别人有提交的代码)
git push -u origin master

标记新的tag

git tag 0.1.2
git push origin 0.1.2

Push到索引库里

pod repo push JAPrivateRepos JATestKit_Local.podspec

如果没有出现error和warning,就说明成功了
搜索一下

pod search JATestKit_Local

更新成功


iOS私有库创建(从0到1)_第16张图片
更新成功.png

棒棒哒!
至此,私有库的制作和更新就全部完成~

有错误不对的地方还望多多指教,感谢阅读。

参考资料:
使用Cocoapods创建私有podspec
Creating Your First CocoaPod

再次感谢 Bartholomew大熊 的帮助~

你可能感兴趣的:(iOS私有库创建(从0到1))