cocoapods私有库使用

前言

仅内部人员使用

之前操作私有库做法与公开库的做法类似,结果在目录~/.cocoapods/repos下出现的情况是版本描述与代码都出现在了这里。

WechatIMG2.png

以上这种情况使用Pod应用是可以拉取到代码的,但是我在尝试版本迭代的时候对于版本控制的校验与push就相当的混乱,这么说吧,我一次没成功。

所以我们需要创建两个库

一个版本库
一个代码库


正文

首先是版本库

WechatIMG3.png

上面是私有库,使用终端将版本仓库加载到本地

$ pod repo add TESTLibrary https://git.artron.net/pod/TESTLibrary.git

此时在目录~/.cocoapods/repos下出现一个TESTLibrary的版本库

WechatIMG4.png

然后是代码库

创建一个名为TEST的代码库,创建时需要添加MIT License

添加License时选择模板 MIT

WechatIMG5.png

以上是代码库,将代码库克隆到本地,添加几项必须的文件

仓库名.podspec
.swift-version
需要使用的代码文件

WechatIMG6.png

ps:隐藏文件显示mac版本command + shift + >

.swift-version创建
$ echo "4.2" > .swift-version

.podspec创建
$ pod spec create TEST

文件创建
创建文件夹,将需要的代码放入,这里比较重点的是文件路径,需要格外注意


下面是.podspec的设置

Pod::Spec.new do |spec|

  spec.name         = "TEST" #项目名称
  spec.version      = "0.0.1"  #项目版本号
  spec.summary      = " Today is the Lantern Festival, and I hope all goes well in 2019" #项目描述
  spec.requires_arc = true # 是否启用ARC
  spec.platform     = :ios, "8.0" #平台及支持的最低版本
  spec.swift_version = "4.2" #swift版本  如果代码中有swift文件
  spec.social_media_url   = "https://git.artron.net/liuwei" # 个人主页

  spec.description  =  "LICENSE" } #许可证
  spec.author             = { "刘威" => "liuwei@artron.net" } #主页地址
  spec.source       = { :git => "https://git.artron.net/pod/TEST.git", :tag => "#{spec.version}" } #源地址,后面指向版本号(做好tag)

  spec.source_files  = "TEST/*.{h,m}","TEST/*.swift" #这个是文件地址,重要的就是这个,也经常出问题
  spec.exclude_files = "TEST/Exclude"

  # spec.public_header_files = "Classes/**/*.h"

#以下是库的依赖使用 2 个公共库一个私有库
  spec.dependency 'SDWebImage', '~> 3.8.2'
  spec.dependency 'SwiftHTTP','~>3.0.0'
  spec.dependency 'TESTRely','~>0.0.1'


end

此时可以去校验仓库正确性

$ pod lib lint

我设置的.summary是存在问题的,但是至少警告⚠️可以忽略,修改验证

$ pod lib lint --allow-warnings

这里插入校验遇到的常见问题,以上述配置为例子
1 .source_files这个在校验时总是出问题,仔细检验正确性
2'TESTRely','~>0.0.1'这个是我自己另外一个私有库,如果校验的话是需要紧跟--sources地址的,具体就修改为$ pod lib lint --soures=https://git.artron.net/pod/TESTRelyLibrary.git,https://github.com/CocoaPods/Specs.git --allow-warnings
其中TESTRelyLibraryTESTRely的版本管理库
3.dependency这个参数设置必须需要指定版本号
4.dependency这个设置私有库,如果公开库上存在相同项目名称的话,会先去公开库上校验,pod处理也是同样的问题,除非公开库上的版本号与自己设置的版本号匹配不上才回去私有库校验。所以无论哪个库的创建,保证自己不重名
5.dependency我设置了,不需要的可以忽略,以上仅仅是测试

验证没问题之后是

 -> TEST (0.0.1)
 
TEST passed validation.

接下来的操作是

1.在打tag之前把本地的修改push到git上,如果某些顺序出问题可以校验tag并删除错误tag
$ git tag
$ git tag -d 版本号
$ git push origin :refs/tags/版本号
2.打tag,保证tag与version(.podspec中)保持一致 (0.0.1)
$ git tag 0.0.1
$ git push --tags
3.将代码库的描述文件.podspec推送到版本管理库中
$ pod repo push TESTLibrary TEST.podspec --allow-warnings
之所以跟着--allow-warnings是因为之前说过的.summary存在问题,否则push不成功。

以上操作完成之后会在~/.cocoapods/repos新增了仓库描述信息

WechatIMG7.png

到这里就可以进行search操作查看信息了

$ pod search TEST

WechatIMG8.png


接下来是使用

Podfile中需要指定私有库地址,如果引用了公用库还需要公有库地址,我的例子中还引用了私有库(私有库引用私有库)所以还需要把引用的私有库的地址也带上https://git.artron.net/pod/TESTRelyLibrary.git

source 'https://github.com/CocoaPods/Specs.git'
source 'https://git.artron.net/pod/TESTLibrary.git'
source 'https://git.artron.net/pod/TESTRelyLibrary.git'

platform :ios, '8.0'

target 'your_project' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!


pod 'TEST','0.0.5'

end

测试

$ pod install

WechatIMG9.png


参考资料

主要资料:
CocoaPods 私有仓库的创建(超详细) (按照该篇写的,补充了自己遇到的问题)
其余相关资料:
CocoaPods公有仓库的创建
使用cocoapods打包静态库(依赖私有库,开源库,私有库又包含静态库)
使用私有Cocoapods仓库 中高级用法
podspec文件解析

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

推荐阅读更多精彩内容