iOS 創(chuàng)建屬于自己的公開庫

前言

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 版本號
image.png
  • 如果當(dāng)前版本過低,需要升級:
sudo gen install cocoapods
pod setup
  • 查看是否已經(jīng)注冊Trunk (我已經(jīng)注冊過)
pod trunk me
image.png
  • 注冊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.podspec

  • 7、審核通過后色徘,我們就可以驗(yàn)證使用自己的公開庫
    pod search WYQProgressHUD
    如果出現(xiàn)未找到的情況恭金,
    rm ~/Library/Caches/CocoaPods/search_index.json
    pod setup

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市褂策,隨后出現(xiàn)的幾起案子横腿,更是在濱河造成了極大的恐慌,老刑警劉巖斤寂,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耿焊,死亡現(xiàn)場離奇詭異,居然都是意外死亡遍搞,警方通過查閱死者的電腦和手機(jī)罗侯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溪猿,“玉大人钩杰,你說我怎么就攤上這事纫塌。” “怎么了讲弄?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵措左,是天一觀的道長。 經(jīng)常有香客問我避除,道長怎披,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任瓶摆,我火速辦了婚禮凉逛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘群井。我一直安慰自己状飞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布蝌借。 她就那樣靜靜地躺著昔瞧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪菩佑。 梳的紋絲不亂的頭發(fā)上自晰,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機(jī)與錄音稍坯,去河邊找鬼酬荞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瞧哟,可吹牛的內(nèi)容都是我干的混巧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼勤揩,長吁一口氣:“原來是場噩夢啊……” “哼咧党!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起陨亡,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤傍衡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后负蠕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛙埂,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年遮糖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绣的。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖屡江,靈堂內(nèi)的尸體忽然破棺而出芭概,到底是詐尸還是另有隱情,我是刑警寧澤盼理,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布谈山,位于F島的核電站,受9級特大地震影響宏怔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜畴椰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一臊诊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斜脂,春花似錦抓艳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至片任,卻和暖如春偏友,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背对供。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工位他, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人产场。 一個(gè)月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓鹅髓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親京景。 傳聞我的和親對象是個(gè)殘疾皇子窿冯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容