利用CocoaPods集成的優(yōu)勢(shì),管理代碼塊,組件,實(shí)現(xiàn)模塊化開(kāi)發(fā)已是很多公司比較推崇使用的技術(shù)點(diǎn)。實(shí)現(xiàn)的效果是把你封裝起來(lái)的常用的功能或者組件,放到pod里面去管理,其他人可以用pod快速集成。
代碼模塊化的目的:
1.易于管理代碼
2.方便的集成使用代碼塊進(jìn)行快速開(kāi)發(fā),相比直接復(fù)制到多個(gè)項(xiàng)目,優(yōu)勢(shì)很明顯。(pod ‘xxx’)
2.更新pod里面的內(nèi)容,那么其他使用到的地方可以實(shí)現(xiàn)同步更新。(pod install)
3.可以隨意的組裝代碼塊,使得你實(shí)現(xiàn)不同的功能。
由于這是我初次使用,可能涉及的面比較窄,但是換湯不換藥,相信看完這篇,你就會(huì)明白是如何實(shí)現(xiàn)的。進(jìn)入正題!
### 制作步驟為以下五個(gè):
一、 安裝CocoaPods
二、 github創(chuàng)建代碼倉(cāng)庫(kù)
三、制作本地庫(kù)( 創(chuàng)建和配置 podspec文件)
四、 上傳至github
五、上傳至cocoapods官方庫(kù)
六、 搜索使用
一、 安裝CocoaPods
這里不再介紹,有需要的朋友可以查看我的另外一篇最新Cocoapods安裝、降級(jí)、使用(Mac Pro),里面有比較詳細(xì)的介紹。
二、 github創(chuàng)建代碼倉(cāng)庫(kù)
1.在個(gè)人主頁(yè) New repository
2.倉(cāng)庫(kù)的配置,如下圖所示

Repository name為你要?jiǎng)?chuàng)建的代碼塊(倉(cāng)庫(kù))的名稱
Description (optional) 描述這個(gè)代碼塊的功能,可選
下面這幾個(gè)我們都不勾選
Initialize this repository with a README 這個(gè)可以勾選,如果不勾選,后面可以自己創(chuàng)建,建議勾選上回自動(dòng)生成
Add .gitignore: 這個(gè)可以使用none
add a license: 我這里選擇 MIT License
3.創(chuàng)建成果以后效果如下圖所以

4.到這里已完成在github上面空倉(cāng)庫(kù)的創(chuàng)建,生成的地址https://github.com/XXX/XXDemo.git就是我們下面要使用的。
三、 制作本地庫(kù)( 創(chuàng)建和配置 podspec文件)
1.命令行創(chuàng)建一個(gè)存放的文件夾(cd 到制定的目錄)
mkdir TestDemo /** TestDemo文件夾名稱下面同樣的 **/
- 直接創(chuàng)建(直接在制定的目錄)
在鼠標(biāo)右鍵創(chuàng)建文件夾,名稱為 TestDemo /** TestDemo文件夾名稱 **/
- 創(chuàng)建pod本地的庫(kù)
cd到上一步創(chuàng)建的目錄執(zhí)行創(chuàng)建庫(kù)指令
pod lib create TestDemo
終端會(huì)出現(xiàn) Cloning https://github.com/CocoaPods/pod-template.git into TestDemo.,在這里需要等待幾分鐘,坐等完成就可以然后出現(xiàn) To get you started we need to ask a few questions, this should only take a minute.這個(gè)是需要我們需要設(shè)置幾個(gè)小問(wèn)題,如下圖所示

問(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]
6.你的類名前綴是什么?(我這里填的是 TD)
設(shè)置完這個(gè)會(huì)自動(dòng)執(zhí)行 pod install,分析依賴和下載需要的配置文件,根據(jù)上面的問(wèn)題的選擇創(chuàng)建一個(gè)工程。如下圖所示

完成之后會(huì)自動(dòng)打開(kāi)xocde。
里面的目錄結(jié)構(gòu)如圖所示

把需要的文件 放到如圖所示的位置ReplaceMe.m可以選擇刪掉

到這里,已完成了本地庫(kù)的創(chuàng)建,這里注意````:path 后面的路勁```。你可以新建一個(gè)工程,試著導(dǎo)入,如圖所示:

如果沒(méi)有上傳到github和coocoapods官方庫(kù)的需求,這里其實(shí)也是完成了cocoapods本地私有庫(kù)的創(chuàng)建。可以在本地使用
- 配置TestDemo.podspec 文件的簡(jiǎn)單說(shuō)明
Pod::Spec.new do |s|
s.name = "會(huì)默認(rèn)生成" --- 與github上創(chuàng)建的一致,代碼塊的名稱
s.version = " 默認(rèn)生成 0.0.1" --- 代碼塊的版本
s.summary = "" -- 項(xiàng)目的摘要
s.description = <<-DESC
///這里填寫項(xiàng)目的描述,建議要寫的比上面的摘要長(zhǎng),不然會(huì)有警告
DESC
s.homepage = "https://github.com/XXX/XXX.git" --- github倉(cāng)庫(kù)的下載地址
s.license = { :type => "MIT", :file => "LICENSE" } --- 對(duì)應(yīng)我們?cè)趧?chuàng)建倉(cāng)庫(kù)的時(shí)候選擇的MIT License,授權(quán)許可文件
s.author = { "XXX" => "XXX@XXX.com" } --- 這里顯示作者名稱和郵箱,可以選擇致謝一個(gè)名稱,你自己隨便寫一個(gè)就可以
s.platform = :ios ---- 使用的平臺(tái)
s.ios.deployment_target = "8.0" ---- 使用的平臺(tái)最低支持的版本
s.source = { :git => "https://github.com/XXX/XXX.git", :tag => s.version } --- 填寫github倉(cāng)庫(kù)的下載地址,后面的照寫就可以
s.source_files = "XXX/XX/*.{h,m}" ---這里很容易出錯(cuò),請(qǐng)注意 ,這里的路勁是相對(duì)于 XXX . podspec的文件的位置來(lái)說(shuō)的,如果你的代碼塊文件夾與他同級(jí),則可以直接寫 "文件夾名稱/*.{h,m}",不在同一級(jí)在按級(jí)往下寫
注意點(diǎn): 如果是swift工程 記得往里面 增加 spec.swift_versions='3.0' 或者spec.swift_version = '3.0', '4.0'也可以spec.swift_versions = ['3.0']或者spec.swift_versions = ['3.0', '4.0', '5.0'] 否則會(huì)出現(xiàn)驗(yàn)證通不過(guò)報(bào)錯(cuò)。
到這里基礎(chǔ)配置已完成,如有包含第三方什么的,則需要把s.framework注釋打開(kāi) ,模仿后面示例添加即可。其他的也是類似
四、 上傳至github
配置了這么多,還沒(méi)有提交,是不是很期待?下面就開(kāi)始搞事情了,依次在終端輸入并執(zhí)行下面的命令
注意:這里本地已生成了README.md和 LICENSE文件,這也是為什么我在第二步創(chuàng)建倉(cāng)庫(kù)的時(shí)候不勾選的原因
2.開(kāi)始提交操作,依次執(zhí)行下面命令
1. git add -A
2. git commit -m '描述'
3.git remote add origin https://github.com/XXX/TestDemo.git ///https://github.com/XXX/TestDemo.git就是第二步github上面得到鏈接
4.git push -u origin master
如果push出現(xiàn)沖突沒(méi)使用下面的
git pull --rebase origin master 再git push -u origin master如果還出現(xiàn)沖突,使用下面的git push -u origin master -f ```
下面需要打tag,與你的.podspec里面的s.version 一致
5.git tag '0.1.0'
6.git push origin 0.1.0 ///也可以使用 git push --tags
ok,到此為止,相信你已成功的提交代碼到github上了!
如看到下圖所示的說(shuō)明已經(jīng)成功。

五、上傳至cocoapods官方庫(kù)
- 如果沒(méi)有沒(méi)有注冊(cè)過(guò)pod賬戶的首次需要注冊(cè),不要怕,這很簡(jiǎn)單
pod trunk register 郵箱 '用戶名' --description='描述'
/**這里的郵箱和用戶名建議寫成你的github上登錄的郵箱和賬戶名稱 ,**/
執(zhí)行成功以后,你的郵箱會(huì)收到一封郵件來(lái)自[cocoapods]的郵件,趕緊去郵箱查看,復(fù)制里面的鏈接在瀏覽器里面打開(kāi),就完成了注冊(cè)了,是不是真的很簡(jiǎn)單???
可以驗(yàn)證一下注冊(cè)的結(jié)果
pod trunk me /** 會(huì)輸出你剛才注冊(cè)時(shí)候填寫的信息**/
下面就是驗(yàn)證測(cè)試一下你的pod的配置是否正確
如果只想驗(yàn)證本地就使用
pod lib lint XXX.podspec --allow-warnings
驗(yàn)證遠(yuǎn)程倉(cāng)庫(kù)和本地庫(kù)(在 push之前一定要用下面這個(gè)驗(yàn)證一下)
pod spec lint XXX.podspec --allow-warnings
在這里如果出現(xiàn)了錯(cuò)誤,請(qǐng)?jiān)?XXX.podspec的同級(jí)目錄下創(chuàng)建一個(gè)指定swift版本的文件并指定版本號(hào),如下所示
錯(cuò)誤:
xcodebuild: error: SWIFT_VERSION '3.2' is unsupported, supported versions are: 4.0, 4.2, 5.0. (in target 'App')
解決 echo "5.0" >> .swift-version 5.0為指定的版本號(hào)
如果上一步,沒(méi)有錯(cuò)誤,那么恭喜你可以正式推送啦
pod trunk push --allow-warnings
不出意外就會(huì)出現(xiàn),下圖所示

更新pod本地倉(cāng)庫(kù)
pod repo update 更新pod本地倉(cāng)庫(kù)
到此為止你已成功的創(chuàng)建了一個(gè)代碼塊,可以先去抽根煙放松一下,因?yàn)樵谕扑统晒σ院罂赡軙?huì)有延遲。
六、搜索使用
1.搜索
pod search XXX /**XXX 為你的代碼塊的名稱 **/
如果報(bào)錯(cuò)搜不到,可能是因?yàn)楸镜鼐彺娴乃饕谧魉?,你可以前?>前往文件夾中輸入
~/資源庫(kù)/Caches/CocoaPods
把search_index.json刪掉,再試一次。有奇跡出現(xiàn)!??!
更簡(jiǎn)單的,一句命令行
rm ~/Library/Caches/CocoaPods/search_index.json
2.使用
pod ‘ XXX ’ /**XXX 為你要集成的代碼塊名稱 **/
pod install /**集成代碼塊到你的項(xiàng)目中,就可以像使用第三方框架一樣使用啦**/
以上就是一些我首次使用CocoaPods管理代碼的一些步驟,中間也經(jīng)歷了一些坑,如果你在使用的過(guò)程中出現(xiàn)問(wèn)題可私我。不足的地方歡迎大家指正?。ㄒ部梢约尤航涣鏖_(kāi)發(fā)技術(shù) 457236811)