美文网首页
cocoapods私有库的创建和更新

cocoapods私有库的创建和更新

作者: 喵星人and亦人 | 来源:发表于2020-12-01 17:25 被阅读0次

    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

    相关文章

      网友评论

          本文标题:cocoapods私有库的创建和更新

          本文链接:https://www.haomeiwen.com/subject/yziswktx.html