利用CocoaPods集成的優勢,管理代碼塊,組件,實現模塊化開發已是很多公司比較推崇使用的技術點。實現的效果是把你封裝起來的常用的功能或者組件,放到pod里面去管理,其他人可以用pod快速集成。
代碼模塊化的目的:
1.易于管理代碼
2.方便的集成使用代碼塊進行快速開發,相比直接復制到多個項目,優勢很明顯。(pod ‘xxx’)
2.更新pod里面的內容,那么其他使用到的地方可以實現同步更新。(pod install)
3.可以隨意的組裝代碼塊,使得你實現不同的功能。
由于這是我初次使用,可能涉及的面比較窄,但是換湯不換藥,相信看完這篇,你就會明白是如何實現的。進入正題!
### 制作步驟為以下五個:
一、 安裝CocoaPods
二、 github創建代碼倉庫
三、制作本地庫( 創建和配置 podspec文件)
四、 上傳至github
五、上傳至cocoapods官方庫
六、 搜索使用
一、 安裝CocoaPods
這里不再介紹,有需要的朋友可以查看我的另外一篇最新Cocoapods安裝、降級、使用(Mac Pro),里面有比較詳細的介紹。
二、 github創建代碼倉庫
1.在個人主頁 New repository
2.倉庫的配置,如下圖所示
Repository name為你要創建的代碼塊(倉庫)的名稱
Description (optional) 描述這個代碼塊的功能,可選
下面這幾個我們都不勾選
Initialize this repository with a README 這個可以勾選,如果不勾選,后面可以自己創建,建議勾選上回自動生成
Add .gitignore: 這個可以使用none
add a license: 我這里選擇 MIT License
3.創建成果以后效果如下圖所以
4.到這里已完成在github上面空倉庫的創建,生成的地址https://github.com/XXX/XXDemo.git
就是我們下面要使用的。
三、 制作本地庫( 創建和配置 podspec文件)
1.命令行創建一個存放的文件夾(cd 到制定的目錄)
mkdir TestDemo
/** TestDemo文件夾名稱下面同樣的 **/
- 直接創建(直接在制定的目錄)
在鼠標右鍵創建文件夾,名稱為 TestDemo /** TestDemo文件夾名稱 **/
- 創建pod本地的庫
cd到上一步創建的目錄執行創建庫指令
pod lib create TestDemo
終端會出現 Cloning https://github.com/CocoaPods/pod-template.git
into TestDemo
.,在這里需要等待幾分鐘,坐等完成就可以然后出現 To get you started we need to ask a few questions, this should only take a minute.這個是需要我們需要設置幾個小問題,如下圖所示
問題的意思就是這樣:
1.你想要使用哪個平臺?[iOS / macOs]
2.你想要使用哪種語言?[Swift / ObjC]
3.你的庫中是否包含一個示例程序?[Yes / No]
4.你想要使用哪個測試框架?[Specta/ Kiwi / None]
5.你想要View基礎測試?[Yes / No]
6.你的類名前綴是什么?(我這里填的是 TD)
設置完這個會自動執行 pod install,分析依賴和下載需要的配置文件,根據上面的問題的選擇創建一個工程。如下圖所示
完成之后會自動打開xocde。
里面的目錄結構如圖所示
把需要的文件 放到如圖所示的位置ReplaceMe.m可以選擇刪掉
到這里,已完成了本地庫的創建,這里注意````:path 后面的路勁```。你可以新建一個工程,試著導入,如圖所示:
如果沒有上傳到github和coocoapods官方庫的需求,這里其實也是完成了cocoapods本地私有庫的創建。可以在本地使用
- 配置TestDemo.podspec 文件的簡單說明
Pod::Spec.new do |s|
s.name = "會默認生成" --- 與github上創建的一致,代碼塊的名稱
s.version = " 默認生成 0.0.1" --- 代碼塊的版本
s.summary = "" -- 項目的摘要
s.description = <<-DESC
///這里填寫項目的描述,建議要寫的比上面的摘要長,不然會有警告
DESC
s.homepage = "https://github.com/XXX/XXX.git" --- github倉庫的下載地址
s.license = { :type => "MIT", :file => "LICENSE" } --- 對應我們在創建倉庫的時候選擇的MIT License,授權許可文件
s.author = { "XXX" => "XXX@XXX.com" } --- 這里顯示作者名稱和郵箱,可以選擇致謝一個名稱,你自己隨便寫一個就可以
s.platform = :ios ---- 使用的平臺
s.ios.deployment_target = "8.0" ---- 使用的平臺最低支持的版本
s.source = { :git => "https://github.com/XXX/XXX.git", :tag => s.version } --- 填寫github倉庫的下載地址,后面的照寫就可以
s.source_files = "XXX/XX/*.{h,m}" ---這里很容易出錯,請注意 ,這里的路勁是相對于 XXX . podspec的文件的位置來說的,如果你的代碼塊文件夾與他同級,則可以直接寫 "文件夾名稱/*.{h,m}",不在同一級在按級往下寫
注意點: 如果是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']
否則會出現驗證通不過報錯。
到這里基礎配置已完成,如有包含第三方什么的,則需要把s.framework注釋打開 ,模仿后面示例添加即可。其他的也是類似
四、 上傳至github
配置了這么多,還沒有提交,是不是很期待?下面就開始搞事情了,依次在終端輸入并執行下面的命令
注意:這里本地已生成了README.md和 LICENSE文件,這也是為什么我在第二步創建倉庫的時候不勾選的原因
2.開始提交操作,依次執行下面命令
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出現沖突沒使用下面的
git pull --rebase origin master
再
git push -u origin master如果還出現沖突,使用下面的
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上了!
如看到下圖所示的說明已經成功。
五、上傳至cocoapods官方庫
- 如果沒有沒有注冊過pod賬戶的首次需要注冊,不要怕,這很簡單
pod trunk register 郵箱 '用戶名' --description='描述'
/**這里的郵箱和用戶名建議寫成你的github上登錄的郵箱和賬戶名稱 ,**/
執行成功以后,你的郵箱會收到一封郵件來自[cocoapods]的郵件,趕緊去郵箱查看,復制里面的鏈接在瀏覽器里面打開,就完成了注冊了,是不是真的很簡單???
可以驗證一下注冊的結果
pod trunk me /** 會輸出你剛才注冊時候填寫的信息**/
下面就是驗證測試一下你的pod的配置是否正確
如果只想驗證本地就使用
pod lib lint XXX.podspec --allow-warnings
驗證遠程倉庫和本地庫(在 push之前一定要用下面這個驗證一下)
pod spec lint XXX.podspec --allow-warnings
在這里如果出現了錯誤,請在 XXX.podspec的同級目錄下創建一個指定swift版本的文件并指定版本號,如下所示
錯誤:
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為指定的版本號
如果上一步,沒有錯誤,那么恭喜你可以正式推送啦
pod trunk push --allow-warnings
不出意外就會出現,下圖所示
更新pod本地倉庫
pod repo update 更新pod本地倉庫
到此為止你已成功的創建了一個代碼塊,可以先去抽根煙放松一下,因為在推送成功以后可能會有延遲。
六、搜索使用
1.搜索
pod search XXX /**XXX 為你的代碼塊的名稱 **/
如果報錯搜不到,可能是因為本地緩存的索引在作祟,你可以前往->前往文件夾中輸入
~/資源庫/Caches/CocoaPods
把search_index.json刪掉,再試一次。有奇跡出現!!!
更簡單的,一句命令行
rm ~/Library/Caches/CocoaPods/search_index.json
2.使用
pod ‘ XXX ’ /**XXX 為你要集成的代碼塊名稱 **/
pod install /**集成代碼塊到你的項目中,就可以像使用第三方框架一樣使用啦**/
以上就是一些我首次使用CocoaPods管理代碼的一些步驟,中間也經歷了一些坑,如果你在使用的過程中出現問題可私我。不足的地方歡迎大家指正!(也可以加群交流開發技術 457236811)