爲本身的庫代碼製做CocoaPods依賴

CocoaPods是iOS最經常使用的類庫管理工具,經過CocoaPods使用簡單的命令就能夠快速管理經常使用的類庫。本身寫的一些類庫也能夠添加到CocoaPods,爲開源事業作貢獻,或者作成本身的私有庫,方便在不一樣的項目中快速使用。
文章來自於個人簡書:原文在這裏ios


下面詳細說明如何爲本身的類庫添加CocoaPods依賴。git

建立Git代碼庫

GitHub(本文使用GitHub)或者Gitlab上建立本身的遠程代碼庫,用於存放須要添加CocoaPods依賴的封裝庫,或者庫及其示例工程。以下爲GitHub上建立一個名爲CJChartView的Public的代碼庫,這個庫將用來存放個人示例工程和統計圖表庫。github

建立GitHub倉庫vim

建立GitHub倉庫

  • 本地建立製做CocoaPods依賴的庫文件及示例工程

    咱們能夠把想要使用CocoaPods管理的庫文件直接製做成pods依賴庫,用戶使用的時候,install到項目中而後集成使用;固然也能夠在製做依賴庫的時候提供示例工程,寫一些示例代碼,方便用戶參考和集成。
    我這裏準備上傳一個CJChartExample工程到GitHub上,而後給示例工程的CJChartView庫添加CocoaPods依賴。方便用戶使用pods集成CJChartView庫,同時經過GitHub下載示例項目,實現快速集成或者查看各類統計圖表的實際效果。bash

    示例項目和CJChartView庫框架

    示例項目和CJChartView庫

    如上圖,我準備了一個名爲CJChartExample的示例工程,紅色框內的文件夾CJChartView爲準備製做CocoaPods依賴的文件。
    上圖中除了示例工程文件、庫文件以外,還有三個文件:.podspecLICENSEREADME.md
    .podspec:cocopods引入第三方代碼庫的配置索引文件
    LICENSEMIT License軟件受權條款
    README.md:使用說明
    一、建立spec文件
    使用終端cdCJChartView的根目錄,輸入命令建立spec文件。工具

    // pod spec create 庫名字
    pod spec create CJChartView 
    複製代碼

    執行完命令,文件夾下建立了一個名爲CJChartView.podspec的spec文件。使用Xcode打開編輯此文件。下面是一些重要的基礎屬性及含義。ui

    Pod::Spec.new do |s|
    
      # 庫名稱
      s.name         = "CJChartView"
    
      # 庫的版本
      s.version      = "0.0.1"
    
      # 庫摘要
      s.summary      = "簡單易用的統計圖表(包括:扇形圖、進度條、柱狀圖、折線圖。。。)"
    
      # 庫描述(最比如summary多寫一些描述)
      s.description  = <<-DESC
                        簡單易用的統計圖表(包括:扇形圖、進度條、柱狀圖、折線圖。。。)
                        提供方便用戶集成使用的統計圖表繪製
                        持續更新中。。。
                       DESC
    
      # 遠程倉庫地址,即 GitHub 的地址,或者你使用的其餘的 Gitlab,碼雲的地址
      s.homepage     = "https://github.com/CircusJonathan/CJChartView"
    
      # MIT許可證(The MIT License),軟件受權條款
      s.license      = "MIT"
      # s.license = { :type => "MIT", :file => "FILE_LICENSE" }
    
      # 做者信息
      s.author             = { "Jonathan" => "Jonathan_dk@163.com" }
    
      # 支持的系統及支持的最低系統版本
      s.platform     = :ios
      s.platform     = :ios, "8.0"
    
      # 支持多個平臺使用時
      # s.ios.deployment_target = "8.0"
      # s.osx.deployment_target = "10.7"
      # s.watchos.deployment_target = "2.0"
      # s.tvos.deployment_target = "9.0"
    
      # 下載地址,即遠程倉庫的 GitHub下載地址(clone 地址),使用.git結尾
      s.source       = { :git => "https://github.com/CircusJonathan/CJChartView.git", :tag => "#{s.version}" }
    
      # 庫文件在倉庫中的相對路徑
      # 等號後面的第一個參數表示的是要添加 CocoaPods 依賴的庫在項目中的相對路徑
      # 由於個人庫就放在庫根目錄,因此直接就是 CJChartView
      # 若是你的是在其餘地方,好比 CJChart/CJChartView,填寫實際的相對路徑
      # 等號後的第二個參數,用來指示 CJChartView 文件夾下的哪些文件須要添加 CocoaPods依賴
      # 「**」這個通配符表明 CJChartView 文件夾下的全部文件,"*.{h,m}"表明全部的.h,.m文件
      s.source_files  = "CJChartView", "CJChartView/**/*.{h,m}"
    
      # 指明 CJChartView 文件夾下不須要添加到 CocoaPods 的文件
      # 這裏是 Exclude 文件夾內的內容
      s.exclude_files = "CJChartView/Exclude"
    
      # 是否須要項目是 ARC
      s.requires_arc = true
    
      # 庫中用到的框架或系統庫(沒用到能夠沒有)
      s.ios.frameworks = 'Foundation', 'UIKit'
      # s.framework = "SomeFramework"
      # s.frameworks = "SomeFramework", "AnotherFramework"
    
      # 若是你的庫依賴其餘的 Podspecs,能夠添加這些依賴項,例如
      # s.dependency 'AFNetworking', '~> 3.2.1'
    
    end
    複製代碼

    二、建立軟件受權條款LICENSE文件
    經過終端vim命令建立LICENSE並編輯license內容。通常採用MIT許可證,MIT許可證(The MIT License)是許多軟件受權條款中,被普遍使用的其中一種。與其餘常見的軟件受權條款(如GPLLGPLBSD)相比,MIT是相對寬鬆的軟件受權條款。MIT條款可與其餘受權條款並存。MIT條款是自由軟件基金會(FSF)承認的自由軟件受權條款,與GPL兼容。
    MIT受權條款格式以下,只須要修改yearcopyright holder就能夠了。this

    Copyright (C) <year> <copyright holders>
     
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is furnished
    to do so, subject to the following conditions:
     
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
     
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    THE SOFTWARE.
    複製代碼

    三、建立README.md使用說明
    一樣使用vim命令建立README.md文件並編輯,我目前的內容很簡單,只寫了幾行描述文案,後續再持續完善使用說明。spa

    # CJChartView
    Description:
    簡單易用的統計圖表(包括:扇形圖、進度條、柱狀圖、折線圖。。。)
    提供方便用戶集成使用的統計圖表繪製
    持續更新中。。。
    複製代碼
  • 代碼上傳GitHub及註冊spec並推送到CocoaPods倉庫

    一、上傳代碼到GitHub,此處使用終端命令實現

    // cd 到項目文件夾根目錄
    cd /Users/jonathancircus/Desktop/CJChartView
    // git init (初始化本地倉庫)
    git init
    // git add . (將倉庫添加到臨時倉庫,"."表示目錄下全部文件)
    git add .
    // git commit -m "描述信息" (添加描述信息)
    git commit -m "init CJChartView "
    // git remote add origin github上倉庫的地址(關聯到遠程倉庫)
    git remote add origin https://github.com/CircusJonathan/CJChartView.git
    // git push -f origin master(推送到遠程倉庫,執行以後須要輸入GitHub帳號和密碼)
    git push -f origin master
    複製代碼

    成功運行上面的命令以後,項目已經push到了GitHub代碼庫,以下圖:

    代碼上傳到GitHub

    二、註冊spec並推送到CocoaPods倉庫
    CJChartView打標籤。

    git tag '0.0.1'  //標籤
    git push --tags  //推送到遠程倉庫
    複製代碼

    註冊spec並推送到遠程倉庫
    使用trunk進行註冊

    // 填寫驗證郵箱,稍後經過郵件驗證
    pod trunk register Jonathan_dk@163.com 'Jonathan' --verbose
    複製代碼

    註冊成功終端信息

    註冊成功以後終端會顯示如上圖的信息,提示經過郵件連接驗證CocoaPods註冊信息。郵件內容以下,點擊郵件中連接驗證:

    驗證郵件,點擊郵件連接驗證

    驗證成功以下圖示:

    驗證成功

    驗證成功以後,使用終端命令進行推送

    // pod trunk push 完整的.podspec文件名
    pod trunk push CJChartView.podspec --allow-warnings 
    複製代碼

    推送結果以下,由於我寫文章的時候推送的是0.0.3版本的,因此下圖中的庫版本信息顯示的是0.0.3(和上文中spec配置文件中不同,上文是0.0.1,實際推送的時候二者是同樣的),其次由於有新的CocoaPods版本,因此在推送的時候,終端提醒我去試用beta版pods,這些信息能夠忽略,不影響此圖做爲trunk推送成功的參考信息。

    trunk推送成功終端信息

    到這裏CocoaPods依賴庫就發佈成功了,可使用pod search 庫名稱命令搜索驗證。若是搜索不到,執行如下命令

    // 更新本地的CocoaPods庫
    pod repo update
    // 而後使用下面的命令搜索
    // pod search 庫名稱 --simple
    pod search CJChartView --simple
    複製代碼

    搜索到的結果以下圖

    search 結果


  • 更新CocoaPods依賴庫文件

    更新CocoaPods上的庫文件很是簡單
    一、把修改(升級)後的庫文件pushGitHub
    二、修改CocoaPods配置索引文件.podspec 修改庫配置文件的版本信息s.version,和必要的其餘配置信息。
    三、打標籤,推送到CocoaPods遠程倉庫
    打標籤,推送標籤

    git tag '版本信息' 
    git push --tags
    複製代碼

    推送庫到CocoaPods遠程倉庫

    // pod trunk push 完整的.podspec文件名
    pod trunk push 完整的.podspec文件名 --allow-warnings 
    複製代碼

    CocoaPods自定義庫文件更新完畢!


  • 刪除CocoaPods依賴庫文件

    目前貌似不支持刪除CocoaPods上已有的公開庫依賴,我猜測直接刪除Git上的庫源代碼,便可刪除CocoaPods依賴庫。
相關文章
相關標籤/搜索