CocoaPod 私有库搭建

开始说明说明步骤之前,先做一个场景假设:
现在我要把自己项目中的首页模块Home做成私有库,方便之后的组件化执行。基于这个场景我们开始说明这个步骤:

创建一个远程索引库,这个远程索引库叫什么名字,可以自己定义,我就使用当期的项目来命名,为Business,这是个索引库,后续这个项目里面的其他模块的索引文件podspec都会放到这个下面。

  • 我们先要去coding(现在Coding和腾讯云合作,升级后就在腾讯云开发者平台)上面创建一个项目,命名为Business,如图:


    Business库
  • 创建一个repo索引库Business,地址为上面创建的Business库git地址,指令为:

pod repo add Business https://git.dev.tencent.com/wode_weiyi/Business.git

这个地址https://git.dev.tencent.com/wode_weiyi/Business.git也可以使用ssh的地址。不过后面要在podfile文件里面要与之对应,不然会自动创建一个repo索引库。

远程索引库创建完成后,下面就需要去创建一个测试的项目,测试Home模块单独出来的是否可用。建议使用pod指令创建,这样会避免后续的很多问题且简单。

pod lib creat Home

这条指令会让你做几个选择,如下面代码

What language do you want to use?? [ Swift / ObjC ] 
 > Swift

Would you like to include a demo application with your library? [ Yes / No ]
 > Yes

Which testing frameworks will you use? [ Quick / None ]
 > None

Would you like to do view based testing? [ Yes / No ]
 > Yes

这里第一个需要自己注意下,下面的跟着写就可以了!不会影响后续操作。

完成上述的选择后,你的目录文件会出现如图的样式:


文件目录

然后将单独出来的Home模块放到图中红色框中,然后把 ReplaceMe.m文件删除掉。

三(1)

执行指令

pod install
这样就完成了本地私有库的创建和测试工程,通过测试后,我们就可以把本地私有库制作成远程私有库了

三(2)
  • 再去Coding上面创建一个项目Home,用来存放Home库,并用于配置Home.podspec文件。
  • 修改Home.podspec文件里面的一些参数,先看下文件里面都有什么参数配置:
Pod::Spec.new do |s|

  s.name             = 'Home'
  s.version          = '0.1.0'
  s.summary          = '基础组件'
  s.description      = '包括基本配置,常量,扩展,工具类等'
  s.homepage         = 'https://dev.tencent.com/u/wode_weiyi/p/Home'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'huzhihui' => 'wonderfulhzh@163.com' }
  s.source           = { :git => 'https://git.dev.tencent.com/wode_weiyi/Home.git', :tag => s.version.to_s }
  s.ios.deployment_target = '8.0'
  s.source_files = 'xxx/Classes/**/*'

end

参数说明:
s.version:版本,这个需要注意下,这里的版本需要和git上面的版本一致,不然是无法提交上去的
s.summary:简单的描述
s.description:详细描述,这个描述一定要比简单描述长
s.homepage: 见下图中的的说明
s.source:Home库的git路劲,修改git里面的地址就可以,见下图说明
s.author:用户信息
s.ios.deployment_target:支持的ios版本
s.source_files: Home库中文件的地址,具体说明可参考CocoaPods 操作过程中出现的错误中的第一个问题

地址说明
三(3)
  • 修改完Home.podspec文件后,需要使用质量检测工具检测下当前的项目Home是否没有问题。指令为:

pod lib lint --allow-warnings --use-libraries

如果是swift项目的话,则会出现下面这个提示:

-> Home (0.1.0)
    - WARN  | [iOS] swift_version: The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run: 
    `echo "2.3" > .swift-version`

[!] BaseComponent did not pass validation, due to 1 warning (but you can use `--allow-warnings` to ignore it).
You can use the `--no-clean` option to inspect any issue.

这个提示就是当前swift版本不正确,修改下好了,具体怎么修改,用下搜索引擎就可以了,这里不过多说明,也可以查看CocoaPods 操作过程中出现的错误中的错误5

问题都修复完成后,会得到以下提示,说明当前项目是没有问题了:

-> BaseComponent (0.1.0)

BaseComponent passed validation.

  • 接下来就要把添加的Home文件提交到本地的版本库中

git add .
git commit -m 'Home'

  • 关联远程私有库,第一次需要关联,这个git地址就是你要存放Home库的远程git地址,后面则不需要

git remote add origin https://git.dev.tencent.com/wode_weiyi/Home.git
git pull origin master //如果第一次关联的话,这语句是获取不到任何东西的,可以不写。后续的更新也可以不写
git push origin master//将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

三(4)

上面都没有问题后,就需要将podspec文件上传到Business的索引库中。
首先需要验证当前Home.podspec文件的正确性

pod spec lint --allow-warnings --use-libraries

由于我们前面都没有做过给git打版本号的操作,就会收到这个提示:

-> Home (0.1.0)
    - WARN  | summary: The summary is not meaningful.
    - ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/local/bin/git clone https://git.dev.tencent.com/wode_weiyi/Home.git /var/folders/wy/55gxbj9d1flbs8bzlhmx3xv40000gn/T/d20181017-26565-1li9z59 --template= --single-branch --depth 1 --branch 0.1.0

Cloning into '/var/folders/wy/55gxbj9d1flbs8bzlhmx3xv40000gn/T/d20181017-26565-1li9z59'...
warning: Could not find remote branch 0.1.0 to clone.
fatal: Remote branch 0.1.0 not found in upstream origin
) during validation.

Analyzed 1 podspec.

[!] The spec did not pass validation, due to 1 error.

  • 那就需要给git打版本号了

git tag '0.1.0'//这个版本一定要和Home.podspec文件中的version一致
git push --tags

  • 然后再去验证下Home.podspec文件,这一步一定不要省略,不然后面如果错了,就会更麻烦

pod spec lint --allow-warnings --use-libraries

验证通过的提示为:

-> Home (0.1.0)
    - WARN  | summary: The summary is not meaningful.

Analyzed 1 podspec.

Home.podspec passed validation.

步骤四

第四步就是将验证通过的podspec文件提交到创建的Business本地索引库中。执行

pod repo push Business Home.podspec --allow-warnings --use-libraries


通过上述的步骤,就完成了远程私有库的创建。使用的时候这里说明下。针对私有库的使用,需要在Podfile文件里面指定source地址,一个是你私有索引库的git地址,一个是cocoaPods的公有库git地址。如图:


image.png

这两个souce都需要写,不然不是pod私有库找不到就是pod公有库找不到


pod远程私有库创建就是这样,这是人为比较简单的方法。针对私有库的升级,则和私有库创建大同小异,替换掉之前Home项目里面的ReplaceMe.m同级的代码文件,然后从第三步走下来就好了!有问题欢迎咨询。

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

推荐阅读更多精彩内容