一、創(chuàng)建私有庫(kù)索引
步驟1是在沒(méi)有索引庫(kù)的情況下或者是新增索引的時(shí)候才需要用到(創(chuàng)建基礎(chǔ)組件庫(kù))
首先在碼云上建立一個(gè)私有庫(kù)索引,起名為SYComponentSpec
二、本地添加私有庫(kù)索引
添加私有庫(kù)索引
pod repo add SYComponentSpec https://gitee.com/sun-shiyu/sycomponent-spec
三、創(chuàng)建基礎(chǔ)組件庫(kù)
當(dāng)你需要新建組件的時(shí)候,就在這里開(kāi)始,如果是想修改原有的庫(kù),就可以直接在之前的組件倉(cāng)庫(kù)里面修改即可
1.在碼云上創(chuàng)建組件庫(kù)
命名為SYBasicComponents
,如圖:
2.創(chuàng)建SYBasicComponents
本地庫(kù)
默認(rèn)創(chuàng)建路徑:/Users/sunshiyu/SYBasicComponents
。
pod lib create SYBasicComponents
最后,項(xiàng)目本地組件庫(kù)創(chuàng)建完成后會(huì)自動(dòng)打開(kāi)項(xiàng)目。
3.在私有庫(kù)導(dǎo)入自己的代碼
將Classes
文件夾下面的ReplaceMe.m
文件刪除掉,替換成你要上傳私有庫(kù)的代碼,這里導(dǎo)入簡(jiǎn)單的兩個(gè)測(cè)試文件:
// SYLog.h
+ (void)logger;
// SYLog.m
+ (void)logger {
NSLog(@"-------- Log --------");
}
4.更新這個(gè)工程的pod庫(kù)
-
cd
到Example
文件下 - 執(zhí)行
pod install
5.修改.podspec
文件
有兩個(gè)屬性需要注意改下:s.homepage
:私有代碼倉(cāng)庫(kù)的地址 https://gitee.com/sun-shiyu/sybasic-components
s.source
:私有代碼倉(cāng)庫(kù)的源地址 https://gitee.com/sun-shiyu/sybasic-components.git
其他屬性根據(jù)需要自行配置。
6.將私有庫(kù)push到遠(yuǎn)程倉(cāng)庫(kù)
注意遠(yuǎn)端需要有個(gè)master
分支,這里先創(chuàng)建一個(gè)master
分支:
cd /Users/sunshiyu/SYBasicComponents
git branch master
git checkout master
commit代碼到本地然后push到遠(yuǎn)端:
git branch (檢查當(dāng)前所在分支)
git status (查看當(dāng)前git存了什么文件)
git add . (將所有文件緩存到待提交文件區(qū)域)
git commit -m "上傳組件"
git remote add origin https://gitee.com/sun-shiyu/sybasic-components.git (私有庫(kù)git倉(cāng)庫(kù)地址)
git push -f origin master (將代碼推送到遠(yuǎn)程私有庫(kù)git倉(cāng)庫(kù)的master分支上面已經(jīng)創(chuàng)建了)
git tag 0.1.0 (這里的版本號(hào)必須和podspec里面寫(xiě)的版本號(hào)一致)
git push -- tags (提交tag)
7.本地和遠(yuǎn)程校驗(yàn)
1.本地校驗(yàn),在當(dāng)前私有庫(kù)目錄下,輸入命令:
pod lib lint --private --allow-warnings
校驗(yàn)成功:SYBasicComponents passed validation.
2.遠(yuǎn)程驗(yàn)證,在當(dāng)前私有庫(kù)目錄下,輸入命令:
pod spec lint --private --allow-warnings
校驗(yàn)成功:SYBasicComponents.podspec passed validation.
8.提交索引文件到遠(yuǎn)程索引庫(kù)
1.所有驗(yàn)證通過(guò)之后,要將spec文件推送到最開(kāi)始創(chuàng)建的私有庫(kù)索引庫(kù)當(dāng)中
cd 到私有庫(kù)項(xiàng)目目錄,
pod repo push <本地索引庫(kù)名稱> <索引文件名> --allow-warnings
<本地索引庫(kù)名稱>在 /Users/sunshiyu/.cocoapods/repos 下的私有庫(kù)索引項(xiàng)目名稱
<索引文件名>就是以 podspec 結(jié)尾的,注意不要弄錯(cuò)
例如輸入命令:
pod repo push SYComponentSpec SYBasicComponents.podspec --allow-warnings
2.推送去之后,在本地索引庫(kù)中查看如下圖??????????????:
在 getee
遠(yuǎn)端查看如下圖:
四、使用基礎(chǔ)組件庫(kù)
隨便創(chuàng)建一個(gè)項(xiàng)目名為 SYSpecDemo
,初始化 pod
:
cd /Users/sunshiyu/Desktop/SYSpecDemo
pod init
pod install
打開(kāi)編輯 podfile
文件
open podfile
如下:
# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'
# source 添加對(duì)應(yīng)的索引庫(kù),否則會(huì)pod install失敗
source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
target 'SYSpecDemo' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for SYSpecDemo
# pod 對(duì)應(yīng)組件,可以對(duì)應(yīng)版本
pod 'SYBasicComponents'
end
再次:
pod install
就可以看到這個(gè)庫(kù):
導(dǎo)入頭文件使用該庫(kù):
#import <SYBasicComponents/SYLog.h>
// 打印 log
[SYLog logger];
五、組件庫(kù)依賴第三方庫(kù)
如果我們的組件庫(kù)需要依賴第三方庫(kù),例如 AFNetWorking
、YYModel
等,操作如下:
1.修改組件庫(kù)的 SYBasicComponents.podspec
文件,添加依賴:
然后組件庫(kù)執(zhí)行 Example
項(xiàng)目 執(zhí)行 pod install
。
2.同上面第6步,將組件庫(kù)修改的代碼提到遠(yuǎn)端。記住一定要記得打 tag
,且要與索引庫(kù)的 version
保持一致 。
git tag 0.2.0 (這里的版本號(hào)必須和podspec里面寫(xiě)的版本號(hào)一致)
git push -- tags (提交tag)
3.提交索引庫(kù)遠(yuǎn)端,同上面的第8步:
pod repo push SYComponentSpec SYBasicComponents.podspec --allow-warnings
4.修改主項(xiàng)目的 podfile
文件,加入 github CocoaPods
索引庫(kù),用來(lái)加載github
三方庫(kù)的:
source 'https://github.com/CocoaPods/Specs.git'
然后執(zhí)行 pod install
。
以上是使用 pod 'SYBasicComponents'
的方式使用組件庫(kù),也就是遠(yuǎn)程的方式,這種方式需要沒(méi)更新組件庫(kù)后都要打 tag
以及修改 spec
的version
,然后修改主項(xiàng)目的 podfile
文件(根據(jù)情況也可能不需要要修改),最后主項(xiàng)目重新 pod install
。這樣就能得到遠(yuǎn)程組件庫(kù)最新的代碼,缺點(diǎn)是主項(xiàng)目每次想更新組件庫(kù)的最近代碼都需要組件庫(kù)打 tag
更新組件庫(kù)的版本,如何實(shí)現(xiàn)只要組件庫(kù)有代碼更新,主項(xiàng)目直接拉最新的代碼呢?答案是引用本地索引庫(kù)的方式,我們只需要修改主項(xiàng)目的 podfile
文件如下:
# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'
# source 添加對(duì)應(yīng)的索引庫(kù),否則會(huì) pod install 失敗
# source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
source 'https://github.com/CocoaPods/Specs.git'
target 'SYSpecDemo' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for SYSpecDemo
# pod 對(duì)應(yīng)組件,可以對(duì)應(yīng)版本
# 方式一、引用遠(yuǎn)端組件庫(kù)
# pod 'SYBasicComponents'
# 方式二:引用本地組件庫(kù),不需要 source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
pod 'SYBasicComponents', :path => '~/SYBasicComponents/'
end
即使用 pod 'SYBasicComponents', :path => '~/SYBasicComponents/'
的方式來(lái)直接引用本地組件庫(kù)的代碼,這樣拉代碼每次都是最新的。我們 pod install
試試看,Pods
目錄結(jié)構(gòu)變?nèi)缦聢D所示:
本地組件庫(kù) SYBasicComponents
里面就是最新的代碼了。因?yàn)槲覀兊慕M件庫(kù)依賴了 AFNetworking
YYModel
,所以Pods
中出現(xiàn)了這兩個(gè)庫(kù)。
結(jié)束!?。?/strong>文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-673835.html
參考:
iOS私有庫(kù)搭建
iOS組件化搭建私有庫(kù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-673835.html
到了這里,關(guān)于iOS 搭建組件化私有庫(kù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!