前言
iOS開發(fā)過程中我們經(jīng)常會(huì)使用到CocoaPods瘩蚪,進(jìn)行第三方類庫的管理就乓;經(jīng)常會(huì)使用到的cocoaPods命令行
cd ...// 打開并進(jìn)入你需要?jiǎng)?chuàng)建podfile文件的工程目錄
touch podfile // 創(chuàng)建一個(gè)可用文本編輯打開的podfile 文件
open -e podfile //打開剛才創(chuàng)建的podfile文件
pod search ...// 搜索我們需要使用的公開庫(AFNetworking)
pod install... // 等待安裝成功
為什么開發(fā)中我們使用CocoaPods管理第三方庫汉匙?
1、傳統(tǒng)使用第三方庫的劣勢
a.使用一個(gè)第三方SDK档址,需要在工程里面添加一堆配置盹兢,少添加一步配置就會(huì)報(bào)一大堆錯(cuò)誤。這個(gè)時(shí)候?yàn)榱伺挪樯倭四囊粋€(gè)步驟守伸,只能從頭開始重做一遍绎秒,太浪費(fèi)時(shí)間和精力。有些配置還不好配置尼摹,就更使人煩躁郁悶了见芹。
b.如果使用的第三方SDK有比較重要的更新,想使用最新的SDK只能到官方下載最新的SDK蠢涝,重新導(dǎo)入到自己的項(xiàng)目工程中玄呛。
c.如果公司有多個(gè)項(xiàng)目,每一個(gè)工程都這樣配置一遍和二,這是多么痛苦的領(lǐng)悟呀徘铝。
2、使用CocoaPods管理第三方庫的優(yōu)勢
1惯吕、我們可以避免上訴的問題惕它,使用方便。
2废登、方便我們自己管理淹魄,只需要更新版本就行了,以前的庫還可以保留讓他人使用堡距。
從這一刻我教會(huì)你如何創(chuàng)建屬于我們自己的公開庫
Everybody甲锡,follow my footsteps,let's start together! I will show you something amazing!
如何創(chuàng)建屬于我們自己的公開庫呢?
- 1羽戒、注冊Trunk :trunk需要CocoaPods 1.0.0版本以上缤沦,使用pod --version 查看當(dāng)前Mac 版本號
- 如果當(dāng)前版本過低,需要升級:
sudo gen install cocoapods
pod setup
- 查看是否已經(jīng)注冊Trunk (我已經(jīng)注冊過)
pod trunk me
- 注冊Trunk
// --verbose 可以輸出詳細(xì)的Debug信息
pod trunk register zhangsan@163.com "zhangsan" --verbose
// zhangsan -----> 用戶名
// zhangsan@163.com -----> 郵箱地址
注冊完成后易稠,會(huì)收到一封郵件信息疚俱,進(jìn)入郵件信息鏈接,確認(rèn)注冊
- 注冊成功后可以再一次使用pod trunk me 查看個(gè)人信息
- 2缩多、GitHub上創(chuàng)建一個(gè)倉庫呆奕,并將自己的代碼進(jìn)行上傳
大家可以查看Mac上傳代碼至GitHub文章中我做了詳細(xì)的介紹; - 3創(chuàng)建XXX.podspec文件
1.cd進(jìn)入克隆的項(xiàng)目目錄下
pod spec create XXX
// XXX ---> 表示你即將創(chuàng)建的框架名稱
- 4衬吆、編輯.podspec文件 (可使用默認(rèn)文本編輯打開)
下文附上我的一個(gè)公開庫 WYQProgressHUD
Pod::Spec.new do |s|
s.name = "WYQProgressHUD"
s.version = "1.1.0"
s.summary = "提供網(wǎng)絡(luò)加載等待層梁钾,用戶操作成功、失敗提示框"
s.description = <<-DESC
WYQProgressHUD 提供網(wǎng)絡(luò)加載等待層逊抡,用戶操作成功姆泻、失敗提示框
DESC
s.homepage = "https://github.com/YongQiangWei/WYQProgressHUD"
s.license = "MIT"
s.author = { "yongQiang Wei" => "15249085279@163.com" }
s.ios.deployment_target = "8.0"
s.source = { :git => "https://github.com/YongQiangWei/WYQProgressHUD.git", :tag => "#{s.version}" }
s.source_files = "WYQProgressHUD/*.{h}"
s.exclude_files = "Classes/Exclude"
s.resources = "MBProgressHUDExtend/MBProgressHUD.bundle/*.png"
s.dependency "MBProgressHUD","~> 1.1.0"
end
簡單說明:
s.name:名稱,pod search 搜索的關(guān)鍵詞,注意這里一定要和.podspec的名稱一樣,否則報(bào)錯(cuò)
s.version:版本號
s.ios.deployment_target:支持的pod最低版本
s.summary: 簡介
s.homepage:項(xiàng)目主頁地址
s.social_media_url:社交網(wǎng)址,這里我寫的微博默認(rèn)是百度,如果你寫的是你自己的博客的話,你的podspec發(fā)布成功后會(huì)@你
s.license:許可證
s.author:作者
s.source:項(xiàng)目的地址
s.requires_arc: 是否支持ARC
s.source_files:需要包含的源文件
s.public_header_files:公開的頭文件
//其他
s.resources: 資源文件
s.dependency:依賴庫冒嫡,不能依賴未發(fā)布的庫拇勃,可以寫多個(gè)依賴庫
常見的寫法:
1、dependency:寫法
s.dependency = 'AFNetworking' , 'SDWebImage'
2孝凌、source_files: 寫法
'runtime/'
'runtime/runtime/.{h,m}'
'runtime//.h'
''表示匹配所有文件
'.{h,m}' 表示匹配所有以.h和.m結(jié)尾的文件
'*' 表示匹配所有子目錄
3方咆、source: 常見寫法
s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :commit => "68defea" }
s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :commit => "68defea", :tag => 1.0.0 }
s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :tag => s.version }
commit => "68defea" 表示將這個(gè)Pod版本與Git倉庫中某個(gè)commit綁定
tag => 1.0.0 表示將這個(gè)Pod版本與Git倉庫中某個(gè)版本的comit綁定
tag => s.version 表示將這個(gè)Pod版本與Git倉庫中相同版本的comit綁定
- 4、打上tag
// 為Git打上tag蟀架,相當(dāng)于我們的版本號
git tag "0.0.1"
// 將tag推送到遠(yuǎn)程倉庫
git push --tags
如果我們的tag打錯(cuò)了瓣赂,沒有用的時(shí)候,需要?jiǎng)h除
首先我們查看tags
git tags //羅列我們所有的tags
刪除本地tags
git tag -d + 分支 // git tag -d 0.0.1
刪除遠(yuǎn)程分支
git push origin :refs/tags/分支
-
5片拍、驗(yàn)證.podspec文件
驗(yàn)證時(shí)我會(huì)使用 --verbose 顯示錯(cuò)誤信息
pod spec lint WYQProgressHUD.podspec --verbose
在驗(yàn)證時(shí)煌集,如果出現(xiàn)警告性問題,我們直接忽略
pod spec lint --allow-warning
image.png
passed validation 表示驗(yàn)證通過
6捌省、發(fā)布
發(fā)布時(shí)會(huì)驗(yàn)證 Pod 的有效性苫纤,如果你在手動(dòng)驗(yàn)證 Pod 時(shí)使用了 --use-libraries 或 --allow-warnings 等修飾符,那么發(fā)布的時(shí)候也應(yīng)該使用相同的字段修飾纲缓,否則出現(xiàn)相同的報(bào)錯(cuò)卷拘。
pod trunk push WYQProgressHUD.podspec7、審核通過后色徘,我們就可以驗(yàn)證使用自己的公開庫
pod search WYQProgressHUD
如果出現(xiàn)未找到的情況恭金,
rm ~/Library/Caches/CocoaPods/search_index.json
pod setup