制作自己的cocoapods

Podspec 制作

  • Podspec创建

打开终端,cd到指定位置,执行以下命令

pod lib create MyTest
  • Podspec修改
Pod::Spec.new do |s|
  s.name             = 'MyTest'
  s.version          = '1.0.0'
  s.summary          = 'My Pod Test'
  s.homepage         = 'https://github.com/xxx/MyTest'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { '姓名' => '邮箱' }
  s.source           = { :git => 'https://github.com/xxx/MyTest.git', :tag => s.version.to_s }
  s.ios.deployment_target = '9.0'
  s.source_files = 'MyTest/*.{h,m}'
end

注意s.source_files选项,为根目录下MyTest文件下的所有.h.m文件。

  • Podspec验证
pod lib lint

正常情况下,验证是通过的 MyTest passed validation.
如果验证出错,需根据错误提示进行处理。
对于警告,可添加--allow-warnings进行忽略

pod lib lint --allow-warnings
  • 代码上传
添加仓库地址

以上操作后,我们需要将我们的代码上传到远程仓库。
若是新建仓库,个人建议建立一个空的仓库即使是README.md也不需要。然后在整个工程的根目录下,执行操作

git remote add origin xxx.xxx.git

如果报错,可先

git remote rm origin
git push -u origin master

也就是把远程仓库地址添加到工程里,这样我们就可以进行代码的提交。
若是已有仓库,或者是仓库有文件。个人建议先将此仓库克隆下来,然后把我们用pod创建的工程整个拖进去,这样我们就可以进行代码提交了。

添加tag
git add -A && git commit -m "Release 1.0.0"
git tag 1.0.0
git push --tags

需要注意的是,这个tag需要与podspec里的version号一致,否则在提交podspec到pod远程仓库的时候会出错。

推送到远程
git push origin master

至此,所有的文件都应该是上传到远程代码仓库了,我们可以查看自己的远程仓库,看是否有提交记录。

Podspec提交公有仓库

公有仓库说明

此处的公有仓库,指的是cocoapods官方的仓库。用于存放用户提交的podspec文件,以便于所有用户使用pod拉取第三方代码。

  • 注册设备

在向cocoapods远程仓库提交自己的podspec,需要进行设备注册(认证)。

pod trunk register xxx@xxx.com 'my name' --description='my macbook air'

然后查看自己的邮件,复制邮件中的链接,用浏览器打开即可。(此操作可能出现失败,需良好的网络环境)

  • 提交.podspec
pod trunk push MyTest.podspec

注意命令执行的目录,需要项目根目录执行。
正常情况下,会提示你提交成功,然后就可以用pod搜索自己的库了。例如 $ pod search MyTest ,就可以搜索到我刚才提交的MyTest的pod资源了。
对于警告,可添加--allow-warnings进行忽略
如果搜索不到,可能需要删除索引文件了。

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

然后再次执行 pod search

Podspec提交私有仓库

私有仓库说明

此处的私有仓库,指的是个人或者公司使用而不让其他人使用的仓库。与公有仓库类似,用于存放用户提交的podspec文件,以便于私有用户使用pod拉取自己的代码。

  • 私有仓库创建

此创建与普通git仓库创建类似,最好使用README.md初始化,顺便补充README.md文件信息。

  • 私有仓库本地安装
pod repo add MyRepo xxx.xxx.git

在本地安装一个名叫 MyRepo 的私有仓库, xxx.xxx.git 为私有仓库地址。

  • 查看本地私有仓库
cd ~/.cocoapods/repos
ls
  • 验证.podspec
pod lib lint --private

私有库的验证,需要添加--private
如果有警告,可添加--allow-warnings进行忽略

pod lib lint --private --allow-warnings

需要注意的是,在提交 .podspec 前,同样需要修改 .podspec 文件,验证、打tag、源码提交

  • 提交.podspec
pod repo push MyRepo MyTest.podspec

向私有库 MyRepo 提交 MyTest.podspec 文件。
如果有警告,添加--allow-warnings进行忽略。

  • 私有库引用
source ‘xxx.xxx.com/MyRepo.git’
source ‘https://github.com/CocoaPods/Specs.git’
  • 私有库卸载
pod repo remove MyRepo

其它用法

  • 指定git使用
pod 'MyTest', :git => 'https://github.com/xxx/MyTest.git', :tag => '1.0.0'

制作的pod无需上传到公共或私有库,只需上传到git,即可使用。

  • 指定path使用
pod 'MyTest', :path => './MyTest'

制作的pod放在本地,即可使用。路径可拖动制作好的私有库到终端,或显示简介拷贝位置。

信息补充

关于私有仓库:
私有仓库只是用来存放私有的podspec,不存放代码。可为外网git,也可为内网git。总而言之,只是podspec的仓库。
关于代码仓库:
代码仓库用来存放自己的源代码的git,可为外网git,也可为内网git。总而言之,只是代码的仓库。
一个私有库,可以存放n多个podspec文件,管理着n多个私有pod。
私有仓库可以随意删除,但不会影响到代码仓库。私有仓库不要加入代码,因为加了也没有任何作用。
私有库与公有库基本一样,只是一个是官方的git,一个是自己的git。私有库需安装,podspec验证需加上说明,使用的时候需引入。

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

推荐阅读更多精彩内容