CocoaPods创建公有和私有Pod库方法总结

目录

创建公有pod库

1.注册CocoaPods账户信息

注册

pod trunk register 邮箱地址  '用户名' --verbose

接下来注册的邮箱地址会收到https://trunk.cocoapods.org/sessions/verify/xxxxx的验证地址,打开就算是注册成功。

查看注册信息,以后当你有了自己的开源Pod库, 也可以用此方式随时查看自己发布过的Pods;

pod trunk me

2.创建共享库文件并上传到公有仓库

1.如果自己新建的库,可以用下面代码创建

pod lib create 库名

之后通过git push或者sourceTree提交到你的git上,注意增加MIT文件。

2.如果已经有了代码

  • 需要在git上新建工程,如下图


    image.png
  • clone工程
  • 可以通过如下代码创建podspec文件
pod spec create 库名.podspec

当然也可以把别的地方的podspec拖进来修改一下。

  • 把这些修改提交到git上

这一步需要注意自己创建的库名不要和CocoaPod上的库名重复了。否者后面会报

[!] You (xxxx) are not allowed to push new versions for this pod. The owners of this pod are xxx@gmail.com.

可以先在 CocoaPods官网查询后,在确定用什么库名。

3.编辑.podspec文件

以下几处地方需要注意的:

homepage和license
homepage和license.png
source和source_files
source和source_files.png

注意source要使用https。之前遇到过一个坑,报了一个

"Source code for your Pod was not accessible to CocoaPods Trunk. Is it a private repo or behind a username/password on http?"错误。

就是因为source填写了git:xxx后来换成https就好了。
同时source_file也要用图片中的格式去写。

验证podspec的正确性:

pod lib lint xxxx.podspec --allow-warnings

如果依赖了自己的库需要使用source的方式验证

pod spec lint --sources='私有仓库repo地址,https://github.com/CocoaPods/Specs'

如果看到
xxxx passed validation.
就表示成功了
代码提交到git上

4.打tag, 发布一个release版本

git tag -m 'first release' '0.1.0'
git push --tag #推送tag到远端仓库

成功之后即可在你的releases里面看到这个tag的版本.

5.发布自己的库描述文件podspec给cocoapods

pod trunk push xxxx.podspec --allow-warnings

如果看到


image.png

说明已经提交给CocoaPods审核了。接下来就是等。

6.pod setup和pod search 库名

如果始终无法search到。可以参考如下方法:
在终端输入:

rm ~/Library/Caches/CocoaPods/search_index.json

~/Library/Caches/CocoaPods/search_index.json文件, 是用来查找的索引文件的,在pod setup生成。
删除~/Library/Caches/CocoaPods目录下的search_index.json文件, 删除成功后再执行:pod search 库名, 等待输出:Creating search index for spec repo 'master'.. Done! 稍等片刻就会出现你想要的结果~

7.更新维护podspec

如果有错误或者需要迭代版本,修改工程文件后推送到远端仓库后, 需要修改podspec中的版本号, 并重新打tag上传, 再进行新一轮的验证和发布, 当然, 创建一个演示demo工程供其他开发者下载查看并不会影响我们的pod库。

创建私有Pod库

私有Pod库和公有Pod库的创建方式没有什么区别, 不一样的是管理他们的spec repo不一样

所以我们需要自己创建一个跟CocoaPods/Specs类似的仓库来管理内部创建的Pod库的podspec文件, 供内部人员更新和依赖使用内部Pod组件库。
私有repo的构建形式有两种, 一种是私有git服务器上面创建,一种是本机创建。
本机创建请参考官方文档:Private Pods,
这里介绍的是在公司内部搭建的git服务器上面创建整个服务的方式。

1.创建一个git仓库用来做内部私有库的Spec Repo

在私有服务器创建一个仓库,一个用来存放所有共享库的podspec, 这里创建好之后的内部SSH协议地址是:git@git.xxxx:iOSPods/xxx.git, 花钱买git的私有仓库或者使用其他免费的第三方git服务(如Bitbucket等)创建的私有仓库给到的http/https地址也一样.终端输入命令:

pod repo add PodSpec git@git.xxxx:iOSPods/xxx.git

将PodSpec添加到本地repo, 添加成功后可以在/.cocoapods/repos/目录下可以看到官方的specs:master和刚刚加入的specs:PodSpec

2.创建私有Pod组件库

这一步跟上面创建共有pod库方式是一致的。即创建git工程,podspace文件,pod lib lint , 打tag 。但不是用trunk方式提交到master上

3.然后将podspec加入私有Sepc repo中

公有库使用trunk方式将.podspec文件发布到CocoaPods/Specs, 内部的pod组件库则是添加到我们第一步创建的私有Spec repo中去, 在终端执行:

pod repo push PodSpec名称  Demo.podspec

添加成功之后PodSpec中会包含新建Demo库的podspec信息, 可以前往~/.cocoapods/repos下的PodSpec文件夹中查看, 同时git服务器中的远端也更新了.

4.查找和使用内部组件库

执行pod search Demo库 就能查到刚刚创建好的库了,然后在想要使用此组件的工程的Podfile中加入pod 'Demo', '~>0.0.1'即可使用内部组件啦!
值得注意的是:必须在Podfile前面需要添加你的私有Spec repo的git地址source, pod install时, 才能在私有repo中查找到私有库, 像这样:

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

推荐阅读更多精彩内容