cocoapods私有库的创建和更新

1.创建示例项目(自己私有库的项目是一般都是按照这个模板来的)

  1. 创建一个文件夹存放示例项目比如testtt
  2. cd /Users/admin/Desktop/testtt 到当前目录下
//YourLib是要创建的示例项目的名称
pod spec create YourLib
  1. 在项目的testPodsss文件夹内添加你自己的代码
image.png

2.创建私有的Spec Repo

Spec Repo 是所有的Pods的一个索引,是所有公开的Pods 的podspec 文件的一个仓库,其实就是一个部署在服务器的Git仓库,当你使使用CocoaPods 后它会被Clone到本地的 ~/.cocoapods/repos 目录下,大概的文件目录如下:

.
├── MySpecs
│   ├── MyLib
│   │   └── 0.1.1
│   │       └── MyLib.podspec
│   └── README.md
└── master
    ├── CocoaPods-version.yml
    ├── README.md
    └── Specs
        ├── !ProtoCompiler
        │   ├── 3.0.0
        │   ├── 3.0.0-beta-3.1
        │   └── 3.0.0-beta-4
        ├── !ProtoCompiler-gRPCPlugin
        │   ├── 0.14.0
        │   ├── 1.0.0
        │   ├── 1.0.0-pre1
        │   ├── 1.0.0-pre1.1
        │   └── 1.0.0-pre1.2

上文的目录树形图就是我电脑的本地的 ~/.cocoapods/repos目录,其中master就是官方的Sepc Repo,跟master同目录级别的MySpecs目录就是我自己的创建的私有Sepc Repo

通过以下命令来关联你本地的私有库和git服务器上私有库的代码

# pod repo add [Private Repo Name] [GitHub HTTPS clone URL]
$ pod repo add MySpecs https://git.coding.net/kensla/MySpecs.git

3.编辑你的testPodsss.podspec文件

#
# Be sure to run `pod lib lint MyLib.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
  #名称
  s.name             = 'MyLib'
  #版本号
  s.version          = '0.1.0'
  #简介
  s.summary          = '这个是我的私有库项目Demo.'

# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the description between the DESC delimiters below.
#   * Finally, don't worry about the indent, CocoaPods strips it!

  s.description      = <<-DESC
  这个是教程的 私有库项目 学习Demo.
                       DESC
  #主页,这里要填写可以访问到的地址,不然验证不通过
  s.homepage         = 'https://coding.net/u/kensla'

  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'

  #开源协议

  s.license          =   { :type => 'MIT', :file => 'LICENSE' }

  #作者
  s.author           = { 'kensla' => '604217454@qq.com' }

  #项目地址,这里不支持ssh的地址,验证不通过,只支持HTTP和HTTPS,最好使用HTTPS。
  #这里的s.source须指向存放源代码的链接地址,而不是托管spec文件的repo地址
  s.source           = { :git => 'https://git.coding.net/kensla/MyLib.git', :tag => "0.1.0" }

  #s.social_media_url = 'http://weibo.com/kensla'

  #支持的平台及版本
  s.ios.deployment_target = '7.0'

  #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则
  #用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置

  s.source_files = "MyLib/Classes/**/*"

  #资源文件地址
  # s.resource_bundles = {
  #   'MyLib' => ['MyLib/Assets/*.png']
  # }

  #公开头文件地址
  #s.public_header_files = 'MyLib/Classes/DDCommonBase.h'

  #所需的framework,多个用逗号隔开
  s.frameworks = 'UIKit'

  #依赖关系,该项目所依赖的其他库,如果有多个需要填写多个s.dependency
  # s.dependency 'AFNetworking', '~> 2.3'
end

4.验证testPodsss.podspec文件

$ pod lib lint

5.向Spec Repo提交podspec文件

# pod repo push [Repo名] [podspec 文件名字]
$ pod repo push MySpecs testPodsss.podspec  

注意:以上都是网上的教程,你可在校验的时候使用pod lib lint会报错或者警告导致一直校验不通过,解决办法如下:

  1. 检查是否添加--source
pod spec lint YTCADPreviewModule.podspec --sources='git@dev.yutong.com:iOS_librarys/Specs.git,git@dev.yutong.com:liguangyi/testPods.git,https://github.com/CocoaPods/Specs.git' --allow-warnings  —verbose 
  1. 如果还没解决看到了一个大神的暴力解决方法:

    不就是编译不通过吗?
    直接改源码,将编译检测跳过去,老子不编了,

    [图片上传失败...(image-2c4eac-1606814731872)]

    image.png

    检测的源码在 validator.rb文件 如何找到它?

    1. 终端 gem which cocoapods

    输出:/usr/local/lib/ruby/gems/2.3.0/gems/cocoapods-1.3.0.beta.2/lib/cocoapods.rb

    2. 终端 open /usr/local/lib/ruby/gems/2.3.0/gems/cocoapods-1.3.0.beta.2/lib/

    将第一步命令输出的结果去掉最后的文件名cocoapods.rb,将前面的路径加到 open命令的后面, 执行命令后会在Finder打开一个lib文件夹

    3. 在当前lib目录下有个cocoapods文件夹,进入,validator.rb文件就在这个文件夹里

    如何修改它?

    找到下面的代码

    [图片上传失败...(image-513874-1606814731872)]

    源代码.png

    改成下面的样子

    [图片上传失败...(image-c1d849-1606814731872)]

    更改后.png

    这样每次向仓库推送podspec文件的时候,都会直接打印一下xcodebuild --help 然后就算作通过验证了
    接下来你就可以安心的 push 你的代码了
    像一些x86_64,i386,不支持模拟器啦,这种都是小case,所有编译错误都可以解决

    注意

    1. 此方法因为太叼,不到万不得已,不能使用,过分依赖容易走火入魔

      [图片上传失败...(image-d82fd6-1606814731872)]

    2. 一定在本地先以:path:git 等的方式集成一下,确认没问题后再往仓库推

    3. 搞完以后记得改回到原来的代码,毕竟做库是为了项目使用的,多点检测也是为了保证质量

    链接:https://www.jianshu.com/p/88180b4d2ab7

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

推荐阅读更多精彩内容