私有庫(kù)創(chuàng)建
創(chuàng)建私有庫(kù)之前先搞清楚兩個(gè)概念
1.code repository是代碼倉(cāng)庫(kù),我們把包代碼上傳到這個(gè)倉(cāng)庫(kù)咸包。
2.spec repository是配置倉(cāng)庫(kù),所有的配置按照包名杖虾、版本號(hào)分門別類的存放在這個(gè)倉(cāng)庫(kù)烂瘫。這個(gè)倉(cāng)庫(kù)只用來(lái)存放spec文件,不存放代碼
步驟
注:因?yàn)镚itHub的私有庫(kù)要收費(fèi)奇适,我就在Gitlab上操作坟比。
一、首先需要有一個(gè)gitlab的賬號(hào)滤愕,然后創(chuàng)建一個(gè)私有的 project(代碼倉(cāng)庫(kù))温算;
二、創(chuàng)建一個(gè)demo工程
找一個(gè)方便操作的目錄间影,接著輸入: pod lib create CurrentTimeTools
之后執(zhí)行一些操作,之后會(huì)自動(dòng)打開(kāi)項(xiàng)目 如下圖
Xcode打開(kāi)后 cd到項(xiàng)目的路徑里 我們能看如下的文件
把組件相關(guān)的類放到工程中
關(guān)閉Xcode茄茁,進(jìn)入到文件目錄魂贬,手動(dòng)把組件相關(guān)的類放到 CurrentTimeTools/Classes 目錄中,刪除自帶的ReplaceMe.m裙顽,這里之所以要放到這個(gè)目錄下是因?yàn)?Example 工程是中生成 Podfile 文件中指定了這個(gè)目錄是源文件地址付燥,我們按照默認(rèn)的走就好。這里我們創(chuàng)建了一個(gè)類愈犹,導(dǎo)入了這個(gè)測(cè)試文件键科,共2個(gè)文件放到 Classes 文件夾,如下:
LSCurrentTime.h
LSCurrentTime.m
cd 進(jìn)入Example文件 執(zhí)行
pod install
三漩怎、修改.podspec 文件中的配置信息
每個(gè) Pods 依賴庫(kù)必須有且僅有一個(gè)名稱和依賴庫(kù)名保持一致勋颖,后綴名為 .podspec 的描述文件,如PhotoLibraryTT.podspec
打開(kāi) .podSpec文件
認(rèn)識(shí)一下 .podSpec 文件 配置其中一些信息 因?yàn)槲疫@次只作簡(jiǎn)單的演示 所以只需要替換s.source中的git地址 如下圖
四勋锤、驗(yàn)證podSpec有效性
這一步第一次嘗試容易出錯(cuò)
pod lib lint
cd 到樣例工程目錄 執(zhí)行上面的指令
如果有警告饭玲,會(huì)導(dǎo)致無(wú)法通過(guò),需要添加--allow-warnings
如果使用了c函數(shù)相關(guān)的叁执,需要添加--use-libraries
如果依賴了私有庫(kù)茄厘,需要添加庫(kù)的源--sources='https://xxxx'
pod lib lint --allow-warnings
五、提交代碼至代碼庫(kù)
驗(yàn)證通過(guò)后谈宛,把代碼提交到倉(cāng)庫(kù)即可
我這里用的sourcetree
提交代碼 打上tag
也可以在終端中提交:
git add -A && git commit -m "add pod files"
git push origin master
git tag -a v0.1.0 -m “0.1.0版本” //一定要打tag
六吆录、創(chuàng)建私有的Spec Repository
創(chuàng)建Spec Repository 和步驟一相似 只是project名稱區(qū)分開(kāi)
我創(chuàng)建了一個(gè) LSSpecRep 私有庫(kù) 這個(gè)庫(kù)只存放spec文件
在終端里 執(zhí)行
pod repo add LSSpecRep http://xxx.git
再前往 ~/.cocoapods/repo目錄下 查看是否創(chuàng)建成功
創(chuàng)建成功后 再cd 進(jìn)入樣例工程 執(zhí)行
pod repo push Specs CurrentTimeTools.podspec
至此已經(jīng)完成了私有庫(kù)的創(chuàng)建
七窑滞、測(cè)試
新建工程,創(chuàng)建Podfile文件,編輯如下葛假,然后執(zhí)行pod install
platform :ios, '8.0'
target 'TestNewPods' do
pod 'CurrentTimeTools', :git => 'http://******/********/LSCurrentTimeTools.git'
end
再打開(kāi)項(xiàng)目執(zhí)行下圖的操作cocoapods 私有庫(kù)創(chuàng)建管理圖片資源(二)
參考:
基于GitLab創(chuàng)建私有庫(kù)
3分鐘讓你的框架支持cocoapods,podspec文件講解