1. 程式人生 > >建立私有cocoapods repo庫 —— Private Pods

建立私有cocoapods repo庫 —— Private Pods

CocoaPods不僅是一個將開原始碼新增到專案的很棒的工具,同時也可以做到跨專案分享元件。你使用一個私有的Spec Repo就能做到這些。

只需要幾個簡單步驟就能給你的專案做好一個私有的pods設定:首先為這些pods建立一個程式碼倉庫,然後讓Cocoapods知道在哪裡能找到它,然後新增這些podspecs檔案到這個程式碼倉庫。

使用步驟

  1. Create a Private Spec Repo

    如果你需要使用自己的一些pods庫的集合的話,建議你建立私有的spec repo,一個只有你們的這些庫的使用者才能訪問到的私有庫。

    你不需要fork Cocoapods/Specs主repo,只需要確認你們的團隊成員都可以正常訪問就行,沒有公開的必要。

  2. 新增你的私有Repo到你的CocoaPods

    $ pod repo add REPO_NAME SOURCE_URL
    

    注意:在你建立本地pods庫的時候,需要檢查你推送到源地址的許可權。

    你可以使用下面兩條指令去檢查你的安裝是否完成:

    $ cd ~/.cocoapods/repos/REPO_NAME
    $ pod repo lint .
    
  3. 新增你的Podspec到你的repo

    確認你打了適當的tag和version標記,然後執行:

    $ pod repo push REPO_NAME SPEC_NAME.podspec
    

    執行這個命令的時候,會執行對.podspec檔案的語法檢查,請注意你的podspec檔案配置細節部分。
    你的repo的結構應該像下面一樣:

    .
    ├── Specs
        └── [SPEC_NAME]
            └── [VERSION]
                └── [SPEC_NAME].podspec
    
  4. 在工程中使用私有repo

    私有repo的使用和官方庫一樣,也是基於Podfile的,你可以在你工程的Podfile檔案中指定spec倉庫源地址就可以了:

    source 'URL_TO_REPOSITORY'
    

使用示範

  1. 建立一個私有的Spec Repo庫

    $ cd /opt/git
    $ mkdir Specs.git
    $ cd Specs.git
    $ git init --bare
    
  2. 新增repo到你的CocoaPods

    $ pod repo add artsy-specs [email protected]: artsy/Specs.git     
    

    檢查安裝是否成功:

    $ cd ~/.cocoapods/repos/artsy-specs
    $ pod repo lint .
    
  3. 新增Podspec到repo

    建立Podspec

    cd ~/Desktop
    touch Artsy+OSSUIFonts.podspec
    

    Artsy+OSSUIFonts.podspec檔案內容大致如下:

    Pod::Spec.new do |s|
      s.name             = "Artsy+OSSUIFonts"
      s.version          = "1.1.1"
      s.summary          = "The open source fonts for Artsy apps + UIFont categories."
      s.homepage         = "https://github.com/artsy/Artsy-OSSUIFonts"
      s.license          = 'Code is MIT, then custom font licenses.'
      s.author           = { "Orta" => "[email protected]" }
      s.source           = { :git => "https://github.com/artsy/Artsy-OSSUIFonts.git", :tag => s.version }
      s.social_media_url = 'https://twitter.com/artsy'
    
      s.platform     = :ios, '7.0'
      s.requires_arc = true
    
      s.source_files = 'Pod/Classes'
      s.resources = 'Pod/Assets/*'
    
      s.frameworks = 'UIKit', 'CoreText'
      s.module_name = 'Artsy_UIFonts'
    end
    

    儲存Podspec並推送到repo

    pod repo push artsy-specs ~/Desktop/Artsy+OSSUIFonts.podspec
    

    如果你的Podspec可用,它就可以被成功新增到repo。你的repo看起來就會變成這樣:

    .
    ├── Specs
        └── Artsy+OSSUIFonts
            └── 1.1.1
                └── Artsy+OSSUIFonts.podspec
    

    你可以參看這個Podfile的例子去新增自己的repo。

  4. 移除私有Repo

    $pod repo remove [name]