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

cocoapods.jpg

前言

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

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

详细步骤

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

创建私有代码库和索引库.png

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

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

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

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

clone索引库.png

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

验证已有JAPrivateRepos啦.png

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

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

pod lib create JATestKit_Local

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

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

问题.png

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

Pod工程文件创建成功.png

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

JATestKit_Local -> Example -> JATestKit_Local.xcworkspace

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

编辑Pod工程文件.png

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

pod lib lint JATestKit_Local.podspec

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

验证成功.png

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

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

目录.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-。

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上就有了我们的代码了~

code上传成功.png

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

git tag 0.1.0
git push origin 0.1.0
标记tag.png

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

pod repo push JAPrivateRepos JATestKit_Local.podspec

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

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


大功告成咯.png

验证一下:

pod search JATestKit_Local
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

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

导入成功.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,开始编辑:

更新.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

更新成功


更新成功.png

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

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

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

再次感谢 Bartholomew大熊 的帮助~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容