利用CocoaPods集成的優(yōu)勢(shì)事扭,管理代碼塊邑雅,組件诀浪,實(shí)現(xiàn)模塊化開發(fā)宛畦。實(shí)現(xiàn)的效果是把封裝起來的常用的功能或者組件趋观,放到pod里面去管理扩然,其他人也可以用pod快速集成
代碼模塊化的目的:
- 易于管理代碼
- 方便集成使用代碼塊進(jìn)行快速開發(fā)梳星,相比直接復(fù)制到多個(gè)項(xiàng)目菜秦,優(yōu)勢(shì)比較明顯
- 更新pod里面的內(nèi)容怪得,那么其他使用到的地方可以實(shí)現(xiàn)同步更新
- 可以隨意的組裝代碼塊咱枉,實(shí)現(xiàn)不同的功能
制作步驟:
- 安裝cocoapods
- github創(chuàng)建代碼倉庫
- 制作本地庫(創(chuàng)建和配置podspec文件)
- 驗(yàn)證
- 創(chuàng)建字庫Subspec
一、安裝cocoapods
不做過多的介紹
二徒恋、github創(chuàng)建代碼倉庫
1.先創(chuàng)建一個(gè)遠(yuǎn)程的spec索引倉庫
2.將私有的遠(yuǎn)程索引倉庫copy到本地
使用命令:
pod repo add HJSpec(本地倉庫名稱) + 剛剛創(chuàng)建的遠(yuǎn)程索引庫地址
可以使用 pod repo 命令 查看是否copy成功
HJSpec
- Type: git (main)
- URL: https://github.com/948769029/HJSpec.git
- Path: /Users/admin/.cocoapods/repos/HJSpec
trunk
- Type: CDN
- URL: https://cdn.cocoapods.org/
- Path: /Users/admin/.cocoapods/repos/trunk
至此蚕断,私有遠(yuǎn)程索引倉庫HJSpec生產(chǎn)完成
三、 制作本地庫(創(chuàng)建和配置podspec文件)
同創(chuàng)建遠(yuǎn)程索引庫一樣入挣,但是要注意不要勾選README file 因?yàn)橐粫?huì)我們?cè)谏蟼髂0宓臅r(shí)候 有自動(dòng)生成 下面的幾個(gè)選項(xiàng)都不選
3.1創(chuàng)建私有的pod組件庫
cd 到要存放的對(duì)應(yīng)的文件夾路徑 執(zhí)行以下命令
pod lib create HJSwiftExtension
問題的意思就是這樣:
1.你想要使用哪個(gè)平臺(tái)亿乳?[iOS / macOs]
2.你想要使用哪種語言?[Swift / ObjC]
3.你的庫中是否包含一個(gè)示例程序径筏?[Yes / No]
4.你想要使用哪個(gè)測(cè)試框架葛假?[Specta/ Kiwi / None]
5.你想要View基礎(chǔ)測(cè)試障陶?[Yes / No]
pod組件空模板創(chuàng)建成功后,會(huì)自動(dòng)打開工程.
3.2刪除ReplaceMe文件桐款,同時(shí)將你封裝好的文件咸这,放到class文件夾里面
3.2.1 切換到Example下進(jìn)行pod install (把剛才拖入到class里的文件夾pod進(jìn)來)
3.3 編輯.podspec 文件
對(duì)應(yīng)字段說明:
name:框架名
version:當(dāng)前版本(注意,是當(dāng)前版本魔眨,假如你后續(xù)更新了新版本媳维,需要修改此處)
summary:簡(jiǎn)要描述,在pod search HJSwiftExtension的時(shí)候會(huì)顯示該信息遏暴。
description:詳細(xì)描述
homepage:頁面鏈接
license:開源協(xié)議
author:作者
source:源碼git地址
platform:支持最低iOS版本
source_files:源文件(可以包含.h和.m)
public_header_files:頭文件(.h文件)
resources:資源文件(配置的文件都會(huì)被放到mainBundle中)
resource_bundles:資源文件(配置的文件會(huì)放到你自己指定的bundle中)
frameworks:依賴的系統(tǒng)框架
vendored_frameworks:依賴的非系統(tǒng)框架
libraries:依賴的系統(tǒng)庫
vendored_libraries:依賴的非系統(tǒng)的靜態(tài)庫
dependency:依賴的三方庫
主要修改一下版本號(hào)侄刽,核對(duì)一下路徑是否正確,然后保存!
注
source來源 一定要填寫正確 可以打開
3.4 校驗(yàn)本地索引文件
cd 到 HJSwiftExtension.podspec 所在的文件夾朋凉,執(zhí)行以下命令
pod lib lint --allow-warnings
pod lib lint 命令表示在本地校驗(yàn)索引文件
pod spec lint 表示在本地和遠(yuǎn)程都校驗(yàn)索引文件
pod lib lint參數(shù)解析:
--sources:需要引?的spec州丹,默認(rèn)只依賴master,如果當(dāng)前pod依賴了私有庫杂彭,需要將其對(duì)應(yīng)的spec包含進(jìn)來墓毒,不然會(huì)報(bào)找不到對(duì)應(yīng)庫的問題。參數(shù)可以是本地spec的名稱亲怠,也可以是git地址所计。
--allow-warnings:允許警告檢測(cè)通過。
--verbose:打印詳細(xì)的檢驗(yàn)過程
--use-libraries:?程或者依賴??了靜態(tài)庫(*.a?件)或者是framework
3.5 把本地組件代碼推到遠(yuǎn)端团秽,并打個(gè)標(biāo)簽
git add .
git commit -m '第一次提交'
git remote add origin 組件代碼庫地址
git push origin master
//注意tag和podspec文件里的s.version一樣
git tag "0.1.0"
git push —-tags
注意:如果提交報(bào)錯(cuò)
請(qǐng)打開這個(gè)鏈接https://blog.csdn.net/weixin_41010198/article/details/119698015
推送成功后主胧,到組件庫git上查看,代碼是否已經(jīng)上傳
3.6 接下來可以驗(yàn)證podspec索引文件是否正確
首先习勤,通過
pod lib lint HJSwiftExtension.podspec --verbose --allow-warnings
驗(yàn)證本地索引文件是否正確
也可以略過本地驗(yàn)證
直接通過
pod spec lint --verbose --allow-warnings
命令驗(yàn)證podspec索引文件(既驗(yàn)證本地同時(shí)驗(yàn)證遠(yuǎn)程的podspec)
如果檢驗(yàn)通過 同樣會(huì)出現(xiàn) passed validation
3.7 將HJSwiftExtension.podspec索引文件到我們最早創(chuàng)建的私有遠(yuǎn)程索引庫 HJSwiftExtension.podspec 命令如下:
執(zhí)行命令前踪栋,要cd 到當(dāng)前組件庫的文件下
格式:pod repo push <本地索引庫> <索引文件名> - -verbose - -allow-warnings
pod repo push HJSpec HJSwiftExtension.podspec --verbose --allow-warnings
四、驗(yàn)證
4.1 查看本地索引倉庫是否引入成功
4.2 新建項(xiàng)目图毕,Podfile 引入剛才封裝好的庫
4.3 pod install 查看是否安裝成功
五夷都、創(chuàng)建子庫Subspec
設(shè)置子庫的作用
在開發(fā)中,有時(shí)候我們僅僅需要用到一個(gè)庫里面的部分功能吴旋,而其他的一些功能我們不需要使用损肛,那么我們就應(yīng)該設(shè)置子庫來實(shí)現(xiàn)選擇性引入
子庫格式
s.subspec '子庫名稱' do |別名|
別名.source_files = '本地索引庫名稱/class/文件夾名稱/*.{h,m}'
設(shè)置子庫
-
我們?cè)趧偛艅?chuàng)建好的本地私有庫,class 文件里面添加一個(gè)新的文件夾testView荣瑟,包含一些封裝好的功能
image.png
-
-
修改HJSwiftExtension.podspec文件
注意點(diǎn):
1、修改版本號(hào)
2摩泪、設(shè)置子庫語法
修改如下圖所示:
-
- 安裝一下子庫笆焰,cd到Example文件路徑
pod install
- 檢驗(yàn)本地文件是否符合推送規(guī)則
pod lib lint --allow-warnings
- 提交代碼并打tag
git add .
git commit -m '第二次提交'
git push origin master
//注意tag和podspec文件里的s.version一樣
git tag "1.0.2"
git push —-tags
- pod repo push <本地遠(yuǎn)程索引庫名稱> <本地索引文件名> - -verbose - -allow-warnings
例如:
- pod repo push <本地遠(yuǎn)程索引庫名稱> <本地索引文件名> - -verbose - -allow-warnings
pod repo push HJSpec HJSwiftExtension.podspec --verbose --allow-warnings
- 修改工程中的Podfile文件
- cd到工程Podfile文件所在位置,執(zhí)行pod install
- 最后工程目錄結(jié)構(gòu)见坑,僅僅引入了Category這個(gè)目錄:
至此嚷掠,子庫的配置完成捏检、