创建远程私有库

目录

特别感谢://www.greatytc.com/p/1764b67d4527

图-创建远程私有库

一  cocoapods安装与使用

参考链接 //www.greatytc.com/p/7138ab490d14

1 替换ruby源

 ruby -v 查看ruby版本

gem sources -l

gem sources --remove  https://rubygems.org/  移除掉原有的源

gem source -a https://gems.ruby-china.com

gem sources  -l

2 更新升级 Gem 版本

(gem不更新可能导致安装pod失败)

sudo gem update --system  

输入开机密码

gem -v 查看gem版本

3. 安装CocoaPods

sudo gem install cocoapods

pod --version

sudo gem install -n /usr/local/bin cocoapods --pre  安装稳定的最新的release beta版本

4. 更新Podspec索引文件

pod setup 更新索引库

5. cocoapods的使用

1> cd进入项目目录

2> touch Podfile  新建Podfile的文件

3> 编辑 Podfile文件

方式一

直接打开该文件然后输入

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '13.0'

target 'AboutCollectionView' do

pod 'AFNetworking', '~> 3.1.0'

end

其中第一行https://github.com/CocoaPods/Specs.git为SDK来源

第二行13.0为iOS的版本号

第三行中AboutCollectionView为Xcode工程的名字

第四行AFNetworking', '~> 3.1.0为要导入SDK的名字和约束版本号

方式二(推荐)

1:还是在项目目录下,输入vim Podfile,然后 按键盘的“i”键 编辑,当下面的"Podsfile" 0L, 0C将变成-- INSERT --,表示可以编辑了,然后输入上面的文本内容。

2:编辑完成后想要退出保存

先按左上角的esc键,再按shift +:键,当:符号出现在最下面的时候,再输入wq,点击回车,就保存并退出去了。

4> 执行pod install

(第一次花的时间比较多,慢慢等着吧)

二  创建本地私有库

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

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

解决方法就是在终端输入下面两条命令:

sudo gem install colored2

sudo gem update --system

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

依次选择iOS、objc、Yes、None、TZ,意思一看就知道了,可以变化;这样就会自动创建了私有库工程,并自动打开

3、打开的工程就类似下面,其中上面的BYViewController等类可以给我们用来调试该私有库的,真正的私有库是放在下面pods--->Development-->Tools-->Classes里面;可以把私有库包含的类拉到该文件中,这样本地私有库就创建成功了。

其中podfile里面的pod 'Tools', :path => '../'中path意思就是指向该本地库的路径,该路径文件夹中内容就是私有库的内容,可以通过cd到该podfile根目录,然后通过pod install可以把该文件夹下面内容全部拉到项目中来,如果该私有库依赖第三方库,那么只需要将第三方库的pod到该私有库中即可,例如将pod 'AFNetworking', "~> 3.0" 写入到该私有库的podfile中

4、回到主项目的podfile中,添加

pod 'Tools', :path => '../lib/Tools'

这句话意思就是pod Tools私有库,路径是后面的,../意思是返回到上一个文件夹,然后lib子文件夹,然后Tools文件夹

5、cd到主项目的根目录,然后pod install ,这样就可以把私有库pod到主项目中,至此本地私有库创建结束

三  创建远程私有库

仅仅是本地私有库是没啥用的,我们需要远程的私有库才行,下面是创建远程私有库方法。

我们公司是自己搭建的gitLab,下面是创建私有库步骤:

1、登录进去

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

输入项目名字,描述,选择private模式,然后点击下面的create project

会进入到这个界面

2、打开终端,cd 到lib/Tools中,然后输入命令

git remote add originhttp://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文件里面的版本号一致

四  创建远程私有Spec Repository

下一步就是提交.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文件。

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

假如原来私有仓库Specs地址变了,只需要,

pod repo add Specs 新地址

添加一个新的源地址

五  提交.podspec远程私有 Spec Repository

添加 刚才创建的 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--verbosefor more information.

这个错误,解决方法就是要保证podspec文件填写正确,并且在 执行pod repo push Specs BMCCommon.podspec的时候添加--allow-warnings,例如pod repo push Specs BMCCommon.podspec --allow-warnings




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

推荐阅读更多精彩内容