Pod 私有倉庫構建


 Pod 私有倉庫構建

  1. 創建`私有倉庫索引庫`(iOS)
  2. 添加`私有倉庫索引庫`到本地repo管理
  3. 創建自己的`組建庫工程
  4. 上傳`組建庫工程`到`私有倉庫索引庫`
  5. App工程調用`組建庫工程`

 

目的

私有庫管理,是用來簡化代碼工程結構,實現代碼復用和工程管理的方案,   幾乎每個公司都有自己的私有倉庫進行組件化管理工程。

1. 創建`私有倉庫索引庫`

描述

  • 私有倉庫索引庫`是管理各個組件庫版本用的。 我們這里可以理解為一個空的git 倉庫,以下可以把名字區分開理解
  • 私有庫:指的是我們真正放置組件代碼的地方。
  • 索引庫:存放spec文件的地方,用於索引到代碼的位置。

 

打個比方,索引庫就好比指針,私有庫就好比對象,指針中存放了對象的地址,通過地址可以找到對象!(可以管理任意個組件倉庫)

創建

隨意在自己的gitlab 或者github上創建一個空的倉庫即可,如我在自己案例中倉庫地址為:

 

https://gitlab.rokid-inc.com/kingbo/iOS.git

2. 添加`私有倉庫索引庫`到本地repo管理

1.cocoapods本地倉庫路徑

~/.cocoapods/repos

2.在本地添加一個自己的遠程索引庫 

//備注這里倉庫名字和git上名字保持一致(不一致好像最后會找不到私庫,如下:iOS 為倉庫名字)
 pod repo add iOS https://gitlab.rokid-inc.com/kingbo/iOS.git

此時目錄結構如下:

.
└── repos
    ├── master
    └── iOS //這個就是我們自己的本地映射倉庫了 

其實這里私有倉庫已經和我們的gitlab建立了 關系,在后面添加組件時,會直接push到我們的git倉庫

 

3. 創建自己的`組建庫工程`

這里的組建可以是任意的庫,以下為測試准備,所以我准備名字為:`RokidToolsKitTest`

3.1 gitlab 倉庫名字構建

 

在gitlab 上面創建一個 `RokidToolsKitTest` 倉庫,我這里的地址如下:

https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest.git

遠程代碼clone 到本地就不用說了

3.2 gitignore 文件創建

另外,我們需要注意的是,由於組件工程中不需要管理pod文件里面的東西,因此需要創建一個名為`.gitignore`的隱藏文件,在這個倉庫的跟目錄下面(隱藏文件)

3.3 CHANGELOG.md 文件創建 (可以忽略)

由於組件工程中也涉及到版本管理,所以這個文件是對每個組件進行迭代改動的功能記錄 

3.4 pod 命令本地創建pod工程

 pod lib create  RokidToolsKitTest

執行上面命令行,然后根據具體情況選擇對話框,最后會給我們創建一個組件工程(包括`podspec`文件里面有很多配置,這里就不一一寫了)

3.5 關聯本地倉庫和遠程倉庫的鏈接 

git remote add origin  https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest.git

 

(寫完自己的代碼,最后直接提交到gitlab 倉庫好了,業務邏輯不一一寫了)

 

 3.6 更改podspec文件信息

開發完成之后需要創建podspec 文件 ,格式如下:

Pod::Spec.new do |s|

  s.name             = 'RokidToolsKitTest'

  s.version          = '0.1.0'

  s.summary          = 'RokidToolsKitTest'

  s.swift_version    = '4.0' # 我這里是swift 驗證的時候不寫會提示錯誤

  s.description      = <<-DESC

   這里是描述信息,由我們自己去寫具體的組建業務

                       DESC

  s.homepage         = 'https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest'

  s.license          = { :type => 'MIT', :file => 'LICENSE' }

  s.author           = { 'jinlingbo' => 'lingbo.jin@rokid.com' }

  s.source           = { :git => 'https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest.git', :tag => s.version.to_s }

  s.ios.deployment_target = '8.0'

  s.source_files = 'RokidToolsKitTest/Classes/**/*'

end

 

4. 上傳`組建庫工程`到`私有倉庫索引庫`

開發完成之后需要為我們自己的lib 倉庫進行發布,具體以下幾個流程 

 4.1 驗證spec文件

其實在我們制作完成自己庫之后,需要驗證自己的庫是否編譯通過,因此在提交之前需要驗證下

  # cd 到當前跟目錄 和podspec 文件保持同一個目錄

 pod lib lint --private 

 //如果有多個文件源,比如自己的私有庫地址時, 可以添加--source ,如下

 pod lib lint --private --sources=https://github.com/CocoaPods/Specs.git,https://gitlab.rokid-inc.com/kingbo/iOS.git

4.2 給版本打一個分支

驗證通過之后,需要給tag 打一個版本  

此處的0.1.0版本號要與spec文件的保持一致

$ git tag 0.1.0

$ git push  --tags

### 4.3 進行發布當前版本

//執行上傳到私有倉庫,在第2步中,我們已經關聯了 `iOS` 這個倉庫的地址,所以這里push之后會直接push到我們的git倉庫之中

pod repo push iOS RokidToolsKitTest.podspec

 

5、App工程調用`組建庫工程`

如果一切順利就可以直接調用 組建了,使用方法和其他庫使用一樣

 

source 'https://github.com/CocoaPods/Specs.git'
source 'https://gitlab.rokid-inc.com/kingbo/iOS.git' #記得在工程中添加自己的私有倉庫索引  

target 'RokidToolsKitTest_Example' do
    pod 'RokidToolsKitTest','0.1.0'
    pod 'SVProgressHUD', '~> 2.2.5'
   target 'RokidToolsKitTest_Tests' do
    inherit! :search_paths
  end

end

 

 總結

到這里,大致的私有倉庫流程就已經完成 , 接下來我們思考的是如何去解決,將私有庫打包成framework 然后對外開放問題。。。。這個話題后續繼續。

 [參考資料]

http://www.cocoachina.com/ios/20180511/23359.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM