组件化第三篇:使用CocoaPods管理自己的框架

创建私有的Spec Repo

  • 新建一个私有索引库,可以使用GitHub
  • 添加远程索引库时可以先检查已有哪些仓库
pod repo
  • 如果索引库已经存在可以先移除,再添加
pod repo remove 私有索引库名
  • 添加私有索引库
pod repo add 私有索引库名 索引库的git地址
  • 在添加私有索引库遇到的问题
    • 问题描述
    fatal: unable to access 'https://github.com/xxx/xxSpecs.git/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
    
    • 我的问题是因为开启的VPN代理,关闭代理后就顺利添加成功了

创建组件库

  • 新建一个私有组件库,可以使用GitHub
  • 使用以下命令创建工程模板
pod lib create libName
  • 完善.podspec文件
    image.png
  • 在模板中的Classes文件夹下添加组件代码(备注:空文件夹会被忽略)
  • 执行pod install命令,将组件代码和测试工程进行关联
  • 编译没问题后提交到远程仓库
# 初始化git库
# 通过上面的方式就不需要执行此命令了
git init

# 将所有代码文件添加到暂存区中
git add .
# 提交到本地仓库中
git commit -m '注释内容'
# 查看状态
git status
# 首先查看是否有远程仓库
git remote
# 添加远程仓库关联
git remote add origin 远程仓库地址
# 确认远程仓库是否添加成功
git remote
# 默认为master分支
git push origin master
  • 打标签, 并提交到远程仓库,因为podspec文件中必须制定版本号
# 添加Tag
git tag [-a] '1.0.0' [-m '初始版本']
# 查看分支
git tag
# 提交分支到远程仓库
git push --tags
  • 删除Tag
# 删除本地tag
git tag -d tag版本号
# 查看分支
git tag
# 删除远程tag,删除后才可以重新建立
git push origin :tag版本号

项目的哪些文件需要上传到远程仓库

image.png
  • pod installpod update选择
    • pod install库会按照Podfile.lock文件(如果已经存在,不存在就会新建)中的版本号进行指定版本库的获取,而pod update不管Podfile.lock文件是否存在,都更新最新版本的三方库
    • 建议在此命令后加上--verbose --no-repo-update
    • 一般情况下,第一次从共享库把项目下载下来之后,应该使用pod install命令安装,而不是选择pod update,目的是为了保证大家使用的第三方框架版本一致
    • 如果以后大家需要升级第三方框架,那么大家约定好统一再执行一次pod update
    • 建议在编写podfile文件时,明确指定第三方库的版本,格式如下:pod '第三方库名称', '~> 版本号',这样不管使用pod install还是pod update效果都是一致的

上传框架.podspec描述文件

  • 描述文件名和工程名称保持一致
  • 填写.podspec文件中的内容,可以参考别的开源库是如何填写描述信息(比如AFNetworking),也可以到官网中查看
  • 首先cd.podspec文件所在的位置,使用下面的命令本地验证.podspec文件的有效性,不会验证tag
pod lib lint --verbose --allow-warnings
  • 远程验证命令
pod spec lint 
  • 本地测试podspec文件
# 指定podspec文件
pod '框架名称', :podspec => 'path/specName.podspec' 
pod install
  • 提交podspec到远程私有repo中
# 向本地索引库中添加描述文件,同时会将此描述文件自动提交到远程私有索引库中
pod repo push 本地私有索引库名称 specName.podspec --verbose --allow-warnings
  • 框架库依赖设置:s.dependency '依赖库名称,在使用你的框架库时会先安装依赖库
  • 补充:单独创建.podspec文件的命令如下,通过pod lib create libName命令创建的工程已经自动创建了.podspec文件,所以无需单独创建(了解即可)
# specName后面【不加后缀】
pod spec create specName

如何更新框架库

  • 提交更新后的代码
  • 打好tag
  • 更改.podspec文件中的版本号为最新的tag号,相关描述也做一定的修改
  • .podspec文件更新到私有索引库中
  • 执行pod update [--verbose --no-repo-update]

使用组件库

# 搜索自己的库
pod search libName

# 这里可能搜索不到,可以先删除~/Library/Caches/CocoaPods下的search_index.json文件,
# 然后重新搜索就会生新文件,在新文件中就会包含你自己的库了
sudo rm ~/Library/Caches/CocoaPods/search_index.json

# 使用自己的库
# -------------------------Podfile-------------------------
# 最低支持的iOS版本
platform :ios, '8.0'

# 指定的repo镜像源
source 'https://github.com/CocoaPods/Specs.git'
# 远程私有库
source '远程私有索引库的git地址'

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