利用CocoaPods集成的優(yōu)勢(shì),管理代碼塊,組件,實(shí)現(xiàn)模塊化開發(fā)。實(shí)現(xiàn)的效果是把封裝起來(lái)的常用的功能或者組件,放到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)建代碼倉(cāng)庫(kù)
- 制作本地庫(kù)(創(chuàng)建和配置podspec文件)
- 驗(yàn)證
- 創(chuàng)建字庫(kù)Subspec
一、安裝cocoapods
不做過(guò)多的介紹
二、github創(chuàng)建代碼倉(cāng)庫(kù)
1.先創(chuàng)建一個(gè)遠(yuǎn)程的spec索引倉(cāng)庫(kù)


2.將私有的遠(yuǎn)程索引倉(cāng)庫(kù)copy到本地
使用命令:
pod repo add HJSpec(本地倉(cāng)庫(kù)名稱) + 剛剛創(chuàng)建的遠(yuǎn)程索引庫(kù)地址
可以使用 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)程索引倉(cāng)庫(kù)HJSpec生產(chǎn)完成
三、 制作本地庫(kù)(創(chuàng)建和配置podspec文件)
同創(chuàng)建遠(yuǎn)程索引庫(kù)一樣,但是要注意不要勾選README file 因?yàn)橐粫?huì)我們?cè)谏蟼髂0宓臅r(shí)候 有自動(dòng)生成 下面的幾個(gè)選項(xiàng)都不選

3.1創(chuàng)建私有的pod組件庫(kù)
cd 到要存放的對(duì)應(yīng)的文件夾路徑 執(zhí)行以下命令
pod lib create HJSwiftExtension

問(wèn)題的意思就是這樣:
1.你想要使用哪個(gè)平臺(tái)?[iOS / macOs]
2.你想要使用哪種語(yǔ)言?[Swift / ObjC]
3.你的庫(kù)中是否包含一個(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)來(lái))

3.3 編輯.podspec 文件

對(duì)應(yīng)字段說(shuō)明:
name:框架名
version:當(dāng)前版本(注意,是當(dāng)前版本,假如你后續(xù)更新了新版本,需要修改此處)
summary:簡(jiǎn)要描述,在pod search HJSwiftExtension的時(shí)候會(huì)顯示該信息。
description:詳細(xì)描述
homepage:頁(yè)面鏈接
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)庫(kù)
vendored_libraries:依賴的非系統(tǒng)的靜態(tài)庫(kù)
dependency:依賴的三方庫(kù)
主要修改一下版本號(hào),核對(duì)一下路徑是否正確,然后保存!
注
source來(lái)源 一定要填寫正確 可以打開
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依賴了私有庫(kù),需要將其對(duì)應(yīng)的spec包含進(jìn)來(lái),不然會(huì)報(bào)找不到對(duì)應(yīng)庫(kù)的問(wèn)題。參數(shù)可以是本地spec的名稱,也可以是git地址。
--allow-warnings:允許警告檢測(cè)通過(guò)。
--verbose:打印詳細(xì)的檢驗(yàn)過(guò)程
--use-libraries:?程或者依賴??了靜態(tài)庫(kù)(*.a?件)或者是framework
3.5 把本地組件代碼推到遠(yuǎn)端,并打個(gè)標(biāo)簽
git add .
git commit -m '第一次提交'
git remote add origin 組件代碼庫(kù)地址
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
推送成功后,到組件庫(kù)git上查看,代碼是否已經(jīng)上傳
3.6 接下來(lái)可以驗(yàn)證podspec索引文件是否正確
首先,通過(guò)
pod lib lint HJSwiftExtension.podspec --verbose --allow-warnings
驗(yàn)證本地索引文件是否正確
也可以略過(guò)本地驗(yàn)證
直接通過(guò)
pod spec lint --verbose --allow-warnings
命令驗(yàn)證podspec索引文件(既驗(yàn)證本地同時(shí)驗(yàn)證遠(yuǎn)程的podspec)
如果檢驗(yàn)通過(guò) 同樣會(huì)出現(xiàn) passed validation
3.7 將HJSwiftExtension.podspec索引文件到我們最早創(chuàng)建的私有遠(yuǎn)程索引庫(kù) HJSwiftExtension.podspec 命令如下:
執(zhí)行命令前,要cd 到當(dāng)前組件庫(kù)的文件下
格式:pod repo push <本地索引庫(kù)> <索引文件名> - -verbose - -allow-warnings
pod repo push HJSpec HJSwiftExtension.podspec --verbose --allow-warnings
四、驗(yàn)證
4.1 查看本地索引倉(cāng)庫(kù)是否引入成功

4.2 新建項(xiàng)目,Podfile 引入剛才封裝好的庫(kù)

4.3 pod install 查看是否安裝成功

五、創(chuàng)建子庫(kù)Subspec
設(shè)置子庫(kù)的作用
在開發(fā)中,有時(shí)候我們僅僅需要用到一個(gè)庫(kù)里面的部分功能,而其他的一些功能我們不需要使用,那么我們就應(yīng)該設(shè)置子庫(kù)來(lái)實(shí)現(xiàn)選擇性引入
子庫(kù)格式
s.subspec '子庫(kù)名稱' do |別名|
別名.source_files = '本地索引庫(kù)名稱/class/文件夾名稱/*.{h,m}'
設(shè)置子庫(kù)
-
我們?cè)趧偛艅?chuàng)建好的本地私有庫(kù),class 文件里面添加一個(gè)新的文件夾testView,包含一些封裝好的功能
image.png
-
-
修改HJSwiftExtension.podspec文件
注意點(diǎn):
1、修改版本號(hào)
2、設(shè)置子庫(kù)語(yǔ)法
修改如下圖所示:
-
- 安裝一下子庫(kù),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)程索引庫(kù)名稱> <本地索引文件名> - -verbose - -allow-warnings
例如:
- pod repo push <本地遠(yuǎn)程索引庫(kù)名稱> <本地索引文件名> - -verbose - -allow-warnings
pod repo push HJSpec HJSwiftExtension.podspec --verbose --allow-warnings
- 修改工程中的Podfile文件

- cd到工程Podfile文件所在位置,執(zhí)行pod install
- 最后工程目錄結(jié)構(gòu),僅僅引入了Category這個(gè)目錄:

至此,子庫(kù)的配置完成、

