美文网首页
CocoaPods私有库创建流程

CocoaPods私有库创建流程

作者: Supremodeamor | 来源:发表于2019-03-26 17:02 被阅读0次

    前言

    iOS开发者,会经常使用CocoaPods管理第三方库。但是,无论是组件化开发还是需要创建公司内部的类库,我们都可以制作自己私有的CocoaPods库。本文就是详细说明私有库创建流程。

    创建流程

    私有检索库的创建

    我们创建CocoaPods公有库时需要向公共的Spec库进行注册的。私有库则需要我们自己来创建Spec仓库。这个Spec库存储的是私有库的检索信息,版本信息等等,一定要与私有库本身区分开。

    1,创建远程Spec仓库

    首先,我们需要创建一个存放Spec检索库的远程仓库

    创建Spec远程仓库
    2,将Spec远程仓库添加到本地:
    $ pod repo add JiaSpecRepo https://github.com/skykywind/JiaSpecRepo.git
    

    然后我们可以在 /Users/jiafujia/.cocoapods/repos/JiaSpecRepo找到clone的仓库:

    Spec仓库本地路径

    私有库的创建

    有了检索库,我们就可以创建私有代码库了。

    创建代码库远程仓库

    这里我们创建一个新的远程仓库,名字为PrivateLib

    创建代码库远程仓库
    创建支持CocoaPods的项目

    我们可以在已经存在的项目添加支持Cocoapods的文件,也可以新建项目。打开终端,通过以下命令创建新的工程:

    1. Pod创建私有库项目
    $ pod lib create PrivateLib
    

    然后会有如下几个问题需要你自定义:

    What platform do you want to use?? [ iOS / macOS ]
     > iOS
    
    What language do you want to use?? [ Swift / ObjC ]
     > Swift
    
    Would you like to include a demo application with your library? [ Yes / No ]
     > Yes
    
    Which testing frameworks will you use? [ Quick / None ]
     > None
    
    Would you like to do view based testing? [ Yes / No ]
     > Yes
    
    1. 编辑PrivateLib.podspec文件
      现根据自己项目的情况编辑版本信息,描述信息,以及其他内容,详见CocoaPods官网文档
    #
    # Be sure to run `pod lib lint PrivateLib.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 https://guides.cocoapods.org/syntax/podspec.html
    #
    
    Pod::Spec.new do |s|
      s.name             = 'PrivateLib'
      s.version          = '0.1.0'
      s.summary          = 'Here is Summary of PrivateLib.'
      s.description      = <<-DESC
    Here is a long description of your private lib. we can write details of the lib.
                           DESC
    
      s.homepage         = 'https://www.jianshu.com/u/0d7345536bf2'
      # s.screenshots    = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
      s.license          = { :type => 'MIT', :file => 'LICENSE' }
      s.author           = { 'skykywind' => '824214765@qq.com' }
      s.source           = { :git => 'https://github.com/skykywind/PrivateLib.git', :tag => s.version.to_s }
      s.ios.deployment_target = '8.0'
      s.swift_version = '4.2'     // 指定Swift 版本
      s.source_files = 'PrivateLib/Classes/**/*'   // 项目代码存放的文件路径
    
    end
    

    编辑完成之后,我们来验证一下是否能通过:

    $ pod lib lint PrivateLib.podspec 
    

    如果不能通过验证,终端会提示你哪个字段信息有问题,修改之后在进行验证就好了。

    1. 添加代码

    打开PrivateLib.xcworkspace, 我们删除默认的ReplaceMe.swift文件, 在PrivateLib->PrivateLib->Classes文件夹下,我创建了一个MyClass类作为示例,这里也就是添加私有代码的地方:

    import Foundation
    
    public class MyClass {
        
        public init() {
        }
        
        public func sayHello() {
            print("Hello world")
        }
        
    }
    
    
    1. 测试代码
      添加完我们的代码后,可以在Example项目中进行测试。在Example目录下,使用下面命令(每次修改私有库代码都需要重新pod install):
    $ pod install
    

    然后在Example的中调用:

    import UIKit
    import PrivateLib
    
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            let myClass = MyClass()
            myClass.sayHello()
        }
    }
    

    如果运行成功我们就可以继续进行了。

    1. 提交本地代码
      打开终端,使用git指令提交代码
    # 关联远程仓库
    $ git remote add origin https://github.com/skykywind/PrivateLib.git
    # 添加全部修改
    $ git add .
    # 提交修改
    $ git commit -a -m "0.1.0"
    # 拉取远程仓库代码(先拉取一下远程的代码,避免冲突)
    $ git pull origin master
    # 推送到远程仓库
    $ git push origin master
    # 制作Tag
    $ git tag 0.1.0
    # 发布Tag
    $ git push origin 0.0.1
    
    1. 向私有Spec检索库注册自己的spec,并验证是否成功:
    # JiaSpecRepo是我们最开始创建的检索库名称
    $ pod repo push JiaSpecRepo PrivateLib.podspec
    //验证远程
    $ pod spec lint PrivateLib.podspec
    

    成功之后我们会在JiaSpecRepo文件夹看到我们发布的版本Users/username/.cocoapods/目录内:

    同时,也可以在远程仓库去查看是否发布成功。

    私有库的使用

    创建一个新的iOS项目 TestDemo,在项目目录下:

    $ pod init
    

    然后通过Xcode或者其他编辑器,编辑Podfile文件,参考如下:

    source 'https://github.com/skykywind/JiaSpecRepo.git'
    # 如果需要引入公共资源的库,也要添加下面的公共检索库地址
    # source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '9.0'
    
    target 'TestDemo' do
        pod 'PrivateLib', '~> 0.1.0'
    
    end
    
    

    私有库的更新

    如果是更新自己的私有库,比如修改了代码,添加了新的依赖库,我们需要重新更新.spec的版本,创建新的Tag号并push到检索库(重复发布步骤)。

    如果是更新自己本地检索库,可以执行以下命令:

    //更新所有repo
    $ pod repo update
    
    // 更新某个spec
    $ pod repo [spec库名]
    
    // 添加新的检索库到本地
    pod repo add [Specs Name] [Specs git仓库地址]
    
    参考文章

    如何制作一个CocoaPods私有库

    相关文章

      网友评论

          本文标题:CocoaPods私有库创建流程

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