ios创建私有库

参考链接:http://blog.csdn.net/qxuewei/article/details/54412117
https://www.aliyun.com/jiaocheng/398428.html

1、在项目中集成cocoapods;
2、在项目根目录的上一个文件夹中创建一个文件夹lib,然后通过终端cd到该目录下;

3、终端命名pod lib create Tools(Tools是你创建私有库的名字,可修改),创建时候可能会出现这种错误
20170418220540333.png

解决方法就是在终端输入下面两条命令:
sudo gem install colored2
sudo gem update --system

然后重复2、3步即可会出现下面界面!

屏幕快照 2018-03-14 下午2.22.22.png

依次选择iOS、objc、Yes、None、TZ,意思一看就知道了,可以变化;这样就会自动创建了私有库工程,并自动打开
4、打开的工程就类似下面,其中上面的BYViewController等类可以给我们用来调试该私有库的,真正的私有库是放在下面pods--->Development-->Tools-->Classes里面;可以吧私有库包含的类拉到该文件中,这样本地私有库就创建成功了,其中podfile里面的pod 'Tools', :path => '../'中path意思就是指向该本地库的路径,该路径文件夹中内容就是私有库的内容,可以通过cd到该podfile根目录,然后通过pod install可以把该文件夹下面内容全部拉到项目中来,如果该私有库依赖第三方库,那么只需要将第三方库的pod到该私有库中即可,例如将pod 'AFNetworking', "~> 3.0" 写入到该私有库的podfile中


屏幕快照 2018-03-14 下午2.26.19.png

5、回到主项目的podfile中,添加
pod 'Tools', :path => '../lib/Tools'
这句话意思就是pod Tools私有库,路径是后面的,../意思是返回到上一个文件夹,然后lib子文件夹,然后Tools文件夹
6、cd到主项目的根目录,然后pod install ,这样就可以把私有库pod到主项目中,至此本地私有库创建结束

仅仅是本地私有库是没啥用的,我们需要远程的私有库才行,下面是创建远程私有库方法。
我们公司是自己搭建的gitLab,下面是创建私有库步骤:

1、登录进去
屏幕快照 2018-03-14 下午4.33.48.png

点击New Project;会进入创建新项目界面


屏幕快照 2018-03-14 下午4.34.17.png

输入项目名字,描述,选择private模式,然后点击下面的create project
屏幕快照 2018-03-14 下午4.37.31.png

屏幕快照 2018-03-14 下午4.37.47.png

会进入到这个界面

2、打开终端,cd 到lib/Tools中,然后输入命令
git remote add origin http://172.16.1.102/zhaojingjing/Tool.git
后面路径是该项目的路径,可以选择是ssh或者http模式,两个模式路径不一样,(提示出错信息:fatal: remote origin already exists.

解决办法如下:

1、先输入$ git remote rm origin

2、再输入$ git remote add origin [git@github.com:djqiang/gitdemo.git](mailto:git@github.com:djqiang/gitdemo.git) 就不会报错了!

参考链接:http://blog.csdn.net/dengjianqiang2011/article/details/9260435)

然后输入
git push -u origin master
这个时候就把私有库项目传到gitLab上,但是私有库上的内容没传上去的,

然后输入
git add .(主要add后面加个空格然后再加点)
git commit -m '初始化'

这样就把私有库内容传到远程仓库中了

另外需要修改私有库的.podspec文件,
s.version 版本号
s.summary 描述
s.description 描述
s.homepage 库的根路径,例如http://172.16.1.102/zhaojingjing
s.source 库的真正路径
s.source_files 库的内容路径

另外我们需要给该库打个版本号,cd 库的根路径:../lib/Tools
查询版本号:git tag
设置版本号:git tag 0.1.0
上传版本号:git push --tags

这样就把远程库打上了标签号,注意的是设置的版本号要和.podspec文件里面的版本号一致

下一步就是提交.podspec文件到私有仓库,便于用户pod。

1、创建并设置一个私有的Spec Repository

在gitlab上创建一个空的仓库,命名为Specs,这个仓库是用来存放我们自己所有的私有库的spec文件,就如同官方的https://github.com/CocoaPods/Specs是用来存放所有官方的specs文件一样。

在终端执行命令:

pod repo add Specs http://xxx.git

注意:上面的命令的解释如下:

pod repo add REPO_NAME SOURCE_URL

其中的 REPO_NAME 是我们要添加的私有repo的名称(这里我们待会填的是:Specs),后面是仓库的 gitlab 地址。这里做的其实是创建的工作,也就是在~/.cocoapods/repo目录下添加了一个以你的私有repo为名的文件夹,但是并没有添加spec文件。


10417199-798256188060b580.png

至此,我们已经在本地得到我们自己的私有仓库 Specs ,这是一个空的仓库。

假如原来私有仓库Specs地址变了,只需要,
pod repo add Specs 新地址
添加一个新的源地址

2、添加 刚才创建的 Tool.podspec 到你的 Spec Repository。

pod repo push Specs Tool.podspec
如果有警告,会导致无法通过,需要添加--allow-warnings

如果使用了第三方库,或者c函数相关的,需要添加--use-libraries

pod repo push Specs Tool.podspec --use-libraries --allow-warnings

试一下可否能搜到改私有库
pod search Tool

有时候会搜不到

解决:rm ~/Library/Caches/CocoaPods/search_index.json 然后重新搜索

然后将框架写入到项目的podfile里面,注意:
由于这是我们的私有库,当pod install的话,cocoapods会默认从gitHub上搜索,所以我们要在项目的podfile上面写上我们私有库的源地址,也就是我们之前创建的存放我们自己所有的私有库的spec文件的项目,例如:http://172.16.1.102/zhaojingjing/Specs.git

设置源的方法是在podfile上面写上
source 'http://172.16.1.102/zhaojingjing/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'

即可!

再就是更新库了,假如库有更新,需要更新到最新版本,添加版本号!操作如下:
1、cd 到本地库根目录
2、git add .(主要add后面加个空格然后再加点)
git commit -m '初始化'
这样就把私有库内容传到远程仓库中了

另外我们需要给该库打个版本号,cd 库的根路径:../lib/Tools
查询版本号:git tag
设置版本号:git tag 0.1.0
上传版本号:git push --tags

然后修改私有库的.podspec文件里面的s.version,必要时候也可以修改s.summary 描述
然后将刚才修改的.podspec文件传到私有库中
pod repo push Specs Tool.podspec --use-libraries --allow-warnings
其中Specs是私有源库的名称,Tool.podspec是刚才修改的.podspec文件名称
传完后试一下可否能搜到改私有库
pod search Tool

搜到,并且有两个版本号就说明成功了!并在在电脑~/.cocoapods/repos里面的对应私有库里面就有两个版本号了!

如果私有库需要依赖第三方库,那么只需要在.podspec文件中添加
s.dependency 'Masonry', '~> 1.0.2'
s.dependency 'MBProgressHUD', '~> 1.0.0'
即可!

修改库.podspec文件时候再次上传容易导致- ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code. You can use --verbose for more information.
这个错误,解决方法就是要保证podspec文件填写正确,并且在 执行pod repo push Specs BMCCommon.podspec的时候添加--allow-warnings,例如pod repo push Specs BMCCommon.podspec --allow-warnings

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

推荐阅读更多精彩内容