美文网首页
CocoaPods 的使用

CocoaPods 的使用

作者: chenyu1520 | 来源:发表于2018-01-09 23:07 被阅读34次

    制作公有的 pod:
    前期准备
    首先要安装 CocoaPods
    如果已安装 CocoaPods 并且 Xocde 版本是8或者更高版本,升级 CocoaPods。

    创建本地的项目,将要开源的代码写在项目中,同步到 GitHub 上,同步的时候注意,在 GitHub 上创建项目的时候,项目名字以及介绍自己写,其余的选择默认的最好。

    同步完了要打 tag,可以直接在 GitHub 上打 tag

    在本地项目文件夹中通过命令 pod spec create XXXXX 创建 podspec 文件,XXXXX最好就是你的项目名字。

    修改 podspec 文件,大致如下:

    #
    #  Be sure to run `pod spec lint GFCommonView.podspec' to ensure this is a
    #  valid spec and to remove all comments including this before submitting the spec.
    #
    #  To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html
    #  To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/
    #
    
    Pod::Spec.new do |s|
    
      # ―――  Spec Metadata  ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
      #
      #  These will help people to find your library, and whilst it
      #  can feel like a chore to fill in it's definitely to your advantage. The
      #  summary should be tweet-length, and the description more in depth.
      #
    
      s.name         = "CYTestCocoaPods"
      s.version      = "0.0.1"
      s.summary      = "Test CocoaPods"
    
    
      s.description  = <<-DESC
                       Test CocoaPods
                       DESC
    
      s.homepage     = "https://github.com/chenyu1520/CYTestCocoaPods"
    
      s.license      = "MIT"
      s.author             = { "chenyu" => "chenyu1520@gmail.com" }
    
       s.platform     = :ios, "8.0"
    
       s.ios.deployment_target = "8.0"
    
      s.source       = { :git => "https://github.com/chenyu1520/CYTestCocoaPods.git", :tag => "#{s.version}" }
    
      s.framework  = "UIKit"
      s.requires_arc = true
    
        s.subspec 'MyTest' do |ssp|
          ssp.source_files = 'CYTestCocoaPods/MyTest/*.{h,m}'
        end
    
    
     end
    

    s.version 要和 GitHub 上的一致。

    关于 Swift 的设置用如下命令:
    echo "3.0" > .swift-version
    验证 podspec 文件,采用忽略警告的方式:
    pod spec lint CYTestCocoaPods.podspec --allow-warnings

    注册:
    pod trunk register chenyu1520@gmail.com 'ChenYu' --description='CYTestCocoaPods'
    需要到邮箱点链接验证一下。

    看提示或者查询 trunk 后的信息:
    pod trunk me
    大致如下:
    Name: ChenYu
    Email: chenyu1520@gmail.com
    Since: January 6th, 09:43
    Pods: None
    Sessions:
    January 6th, 09:43 - May 14th, 09:46. IP: 221.217.221.173 Description: CYTestCocoaPods

    最后执行:
    pod trunk push --allow-warnings

    可以看到如下信息


    提交成功.png

    虽然在终端中可能搜索不到,但是可以在其他项目中直接使用了。


    制作私有 pod,有两种方式:

    1. 每一个私有的 pod 制作好了以后,都单独的添加到/Users/xxx/.cocoapods/repos 中,Podfile 文件中需要声明 .git 地址。
      这样做会有一些弊端,一般 pod 库都是放在一个工程中,在执行 pod repo add CYPods https://git.coding.net/ecanfly/MyPrivatePod.git的时候,会把工程中的所有文件同步过来,在执行pod repo push CYPods MyPrivatePod.podspec会报错,说在/Users/xxx/.cocoapods/repos/CYPods目录下有不能提交的代码,还需要做删除操作,把 MyPrivatePod.podspec 以外的所有文件都删除。有几个文件可以不删除,如果没有删除,其他项目组成员在 pull 代码的时候,就会把这些文件 pull 下来,增加存储空间和 pull 的时间。
    2. 单独创建一个仓库,用来管理其他的 pod。单独创建的这个仓库不需要pod spec create XXXXX 创建 podspec 文件。
      • 需要执行几个命令,把他存入/Users/xxx/.cocoapods/repos中,命令如下:pod repo add CYPodSpec https://git.coding.net/ecanfly/CYPodSpec.git。注意https://git.coding.net/ecanfly/CYPodSpec.git是你远端已经存在仓库。这里如果不成功,很有可能是不能正确的访问 https://git.coding.net,这时候用 SourceTree 把代码克隆一份到桌面,克隆的时候会让你输入 https://git.coding.net 的用户名和密码。再次执行之前的命令就可以成功的在 .cocoapods/repos中创建文件夹,并关联到远端。
      • 现在做好一个私有的库,并使用命令pod spec create XXXXX创建 podspec 文件,修改这个文件结束后,通过pod lib lint xxx.podspec --verbose --use-libraries --allow-warnings做本地验证。没有问题后打 tag 并 push 到远端。需要注意 podspec 文件夹中的 s.version 需要在远端有对应的 tag。通过pod spec lint xxx.podspec --verbose --use-libraries --allow-warnings做远程验证。
      • 通过pod repo push CYPodSpec xxx .podspec --verbose --use-libraries --allow-warnings将私有库放置在.cocoapods/repos/CYPodSpec文件夹下,这个命令自带推送操作,会把 CYPodSpec 仓库同步到远端。
      • 如果更新了 pod 库
        • 要修改 podspec 文件中的版本号
        • 本地验证
        • 打 tag 并推送到远端
        • 远端验证
        • 执行 pod repo push CYPodSpec xxx .podspec --verbose --use-libraries --allow-warnings ,CYPodSpec 中对应的私有库文件夹中会多出一个版本号对应的文件夹,里面存放了 xxx .podspec 文件。

    (如果是库中拖拽了其他的库当源码,遇到问题的话,可以参考下面的文档)[https://www.jianshu.com/p/8566983dae1f]

    参考:
    私有库制作的第一种方式参考这个

    相关文章

      网友评论

          本文标题:CocoaPods 的使用

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