一.創建私有庫的流程簡介 創建一個項目,留著後面的流程3製作私有庫 在可以創建私有庫的地方創建一個code repository, code repository是代碼倉庫,我們把代碼上傳到這個倉庫。 在可以創建私有庫的地方創建一個spec repository, spec repository是配 ...
一.創建私有庫的流程簡介
- 創建一個項目,留著後面的流程3製作私有庫
- 在可以創建私有庫的地方創建一個code repository, code repository是代碼倉庫,我們把代碼上傳到這個倉庫。
- 在可以創建私有庫的地方創建一個spec repository, spec repository是配置倉庫,所有的配置按照包名、版本號分門別類的存放在這個倉庫。這個倉庫只用來存放podspec文件,不存放代碼。
- 克隆code repository到本地並添加私有庫代碼文件,上傳所有文件到遠端的庫中並打tag
- 創建並編輯三個私有庫配置文件:創建和編輯README.md、創建和編輯LICENSE、創建和編輯podspec文件(驗證podspec文件是否正確,如果有問題要確保更改完成,否則無法繼續進行 )
- 創建本地的私有倉庫文件
- 將配置文件push到遠端專門存儲配置文件的倉庫中
- 確認已經製作完成並使用
二.創建的詳細流程
1.創建一個項目,留著後面的流程3製作私有庫
1)在這裡我們選擇用Cocoa Touch Static Library創建一個新的工程,取名為JXTool
2)刪除掉預設的.h和.m文件,加入自己已經準備好的工具類,最後主要就是用這個工具類去製作的私有庫,這裡簡便起見就只是執行列印了
#import <Foundation/Foundation.h> @interface logTest : NSObject - (void)test; @end
#import "logTest.h" @implementation logTest - (void)test { NSLog(@"test111111"); } @end
2.在可以創建私有庫的地方創建一個code repository(代碼倉庫), 一個spec repository(配置倉庫)
這裡我使用的是gitlab,除了gitlab之外還可以使用github(私有需要收費) 、開源中國、CODING、Bitbucket、CSDN code都可以,但這裡使用gitlab來介紹所有的操作
1)點擊右上角的加號按鈕,創建代碼倉庫名為JXCodeRep
2)同上面方法,創建配置倉庫名為JXSpecRep,所以此時除了名字不同外,其他都一樣 .所以這裡建議使用不同的倉庫名字來區別這兩個不同作用的倉庫
3.克隆code repository到本地並添加步驟1中的私有庫代碼文件,上傳所有文件到遠端的庫中並打tag
1)打開git管理工具SourceTree,點擊新建按鈕,選擇從URL克隆選項,將上面的遠程代碼倉庫地址複製進去,選擇好自己的目標路徑和名稱後點擊克隆
2)這時候第一次克隆下來的文件夾是沒有東西的(這裡不算隱藏文件)
因此別忘了按照gitLab官網進行下麵操作,打開終端,在預設的路徑下就行
3)拉取遠程代碼倉庫,將我們之前步驟1中建立好的整個項目全部拖進這個文件夾替換README.md
4)進入SourceTree,點擊文件狀態,將所有的改動全選後提交,再推送到git伺服器.將你需要某次修改打上一個tag 1.0,作為一個庫的修改版本.註意::別忘了,勾選上"推送標簽",這個非常重要
4.創建並編輯三個私有庫配置文件
1)創建和編輯README.md、創建和編輯LICENSE(我在這裡就不創建這兩文件了,只是簡單說下創建方法)
這個文件在github中也有,是項目的說明文件,根據自己的項目做一些說明.打開終端,cd到工具類文件所在的路徑下
2)創建和編輯.podspec文件(這步最容易出錯)
打開終端輸入
cd ~/
為了後續私有庫的維護,建議名字和工具類所在項目名一樣,進入到根目錄後創建一個名字叫JXTool.podspec的文件
pod spec create JXTool
準備通過vim進行編輯
vim JXTool.podspec
先別按下 i進入編輯模式,清空全部內容
:%d
內容清空後點擊i 進入編輯模式,輸入以下內容
Pod::Spec.new do |s| s.name = "JXTool" s.version = "1.0" #當前版本 s.summary = "JXTool a hello " #描述 s.homepage = "http://git.op.xywy.com/liunian/JXCodeRep.git" #庫文件主頁地>址 s.license = 'MIT' s.author = { 'liunian' => '[email protected]' } #開發者 s.source = { :git => '[email protected]:liunian/JXCodeRep.git', :tag => '1.0' } #文件的git地址,以及當前版本對應的tag,這個1.0就是我剛剛標註的 s.source_files = 'JXTool/JXTool/*' #文件所在的目錄,後面*是一個正則表達式,目錄我下麵會有解釋 # s.source_files = 'JXTool/JXTool/*.{h,m}' #文件所在的目錄,後面*.{h.m}是一個正則表達式,目錄我下麵會有解釋 # s.resources = 'JXTool/JXTool/*.xib' #資源文件所在的目錄圖片,xib等,這個demo沒有用到 s.framework = 'UIKit' #當前這個庫所依賴的系統的庫 s.platform = :ios s.requires_arc = true #是否支持arc end
退出編輯esc,保存
:wq
3)進入終端後驗證.podspec文件是否有效
pod spec lint JXTool.podspec --allow-warnings
有passed validating則表示spec文件驗證通過了
5.創建'本地的私有倉庫'文件
1)使用下麵的命令就可以在本地生成配置文件的倉庫,建議這個本地的名字也和遠程的一致,這樣便於區分和後期的維護.
JXSpecRep 是你遠端創建的配置文件倉庫的名字,後面是配置文件倉庫遠端的地址 .
註意此時不需要cd進入任何目錄,從預設位置輸入這個命令,即在點擊終端快捷方式打開的狀態下直接輸入下麵的命令即可
pod repo add JXSpecRep http://git.op.xywy.com/liunian/JXSpecRep.git
2)查看是否添加成功
pod repo list
如果出現了JXSpecRep,則代表添加成功
或者返回桌面command+shift+G查詢本地配置倉庫管理文件夾
~/.cocoapods/repos
6.將配置文件push到遠端專門存儲配置文件的倉庫中
1)將配置文件push到遠端專門存儲配置文件的倉庫中 ,本地的也會同步更新
此時需要cd進入本地的.podspec所在的路徑,預設是根目錄,否則會找不到podspec文件
使用下麵的命令即可,有問題可以參考報錯信息去修改
JXSpecRep 是你創建的spec repository的名字,後面是你本地創建的.podspec文件
pod repo push JXSpecRep JXTool.podspec --allow-warnings
2)出現下麵信息,則代表成功
或者查詢本地私有spec管理文件夾,看到了JXTool則代表成功
open ~/.cocoapods/repos
3)可以在遠端倉庫中看到這個文件,並且遠端配置文件倉庫中有且只有這一個文件
7.確認已經製作完成並使用
1)查詢是否有我們需要的私有庫
pod search JXTool
2)新建一個項目後,初始化pod
pod init
編輯Podfile文件
vim Podfile
在合適的地方pod我們的私有庫
source 'http://git.op.xywy.com/liunian/JXSpecRep.git' pod 'JXTool', '1.0'
cd到項目的路徑下
pod install
3)導入頭文件,使用工具類
大功告成!
三.補充
下麵主要講述在同一臺筆記本操作,也就是還保留著之前所有相關本地的文件
1.更新私有庫
1)參照上面步驟3將私有庫克隆下來,然後進行工具類代碼的修改,重新提交到遠程倉庫,並設置標簽,例如2.0,即再執行一遍步驟3的1)和4)
修改的地方
#import "logTest.h" @implementation logTest - (void)test { NSLog(@"test222222"); } @end
2)編輯.podspec文件,我這裡是同一臺筆記本還有原先的文件,所以不用再次創建了,直接編輯
vim JXTool.podspec
修改下麵的信息,即所有1.0的地方都修改成最新的標簽2.0
Pod::Spec.new do |s| s.name = "JXTool" s.version = "2.0" #當前版本 s.summary = "JXTool a hello " #描述 s.homepage = "http://git.op.xywy.com/liunian/JXCodeRep.git" #庫文件主頁地>址 s.license = 'MIT' s.author = { 'liunian' => '[email protected]' } #開發者 s.source = { :git => '[email protected]:liunian/JXCodeRep.git', :tag => '2.0' } #文件的git地址,以及當前版本對應的tag,這個1.0就是我剛剛標註的 s.source_files = 'JXTool/JXTool/*' #文件所在的目錄,後面*是一個正則表達式,目錄我下麵會有解釋 # s.source_files = 'JXTool/JXTool/*.{h,m}' #文件所在的目錄,後面*.{h.m}是一個正則表達式,目錄我下麵會有解釋 # s.resources = 'JXTool/JXTool/*.xib' #資源文件所在的目錄圖片,xib等,這個demo沒有用到 s.framework = 'UIKit' #當前這個庫所依賴的系統的庫 s.platform = :ios s.requires_arc = true #是否支持arc end
後面的步驟依然和之前的一樣,參照上面的步驟,參照上面的步驟4.3)
見到JXTool (2.0)極為成功
3)將配置文件push到遠端專門存儲配置文件的倉庫中,參照上面的步驟6
見到上面的則為成功
4)確認已經製作完成並使用
編輯原先測試demo的Podfile文件,pod update之後運行看結果
終於大功告成!!!!
由於我是第一次去主動在gitlab上創建私有庫,查了很多資料都不是很詳細,看了也是迷糊的很,所以特別抽空研究了一番,結合幾篇別人的文章,自動親手實踐,最後整理成這篇筆記,可能對於熟悉創建私有庫的人來說廢話很多,很冗餘,但是真心希望能幫助和我一樣的新手,一起學習。