iOS-創(chuàng)建自己的pod庫

一衰粹、背景

目前iOS組件化常用的方案就是Pod+路由——持續(xù)集成庇楞,今天我們來創(chuàng)建一個Pod庫钦无。

二、注冊用戶名和郵箱(此為GitHub的用戶名和綁定的郵箱)

1祠汇、可以使用如下指令查看自己是否已經綁定過

$ pod trunk me

如果終端如圖一輸出,就表示已綁定熄诡,否則未綁定

image

2可很、未綁定,使用如下指令綁定

$ pod trunk register 你的郵箱 '你的用戶名' --description='這里是描述'

終端輸出如圖二

image

注:執(zhí)行完該命令后凰浮,綁定的郵箱會收到一封郵件里面包含一個驗證的連接我抠,打開該鏈接進行驗證!

3袜茧、然后在使用 $ pod trunk me 指令來驗證下菜拓,是否綁定成功

二、在本地創(chuàng)建pod庫

1笛厦、根據自己存放的習慣創(chuàng)建一個空文件夾纳鼎,用于存放我們的pod庫,然后打開它

$ cd /Users/xiaohe/Desktop/Cocoapods
$ pod lib create ZSBaseTest

3、執(zhí)行完上述命令后贱鄙,會依次問如下問題

What platform do you want to use?? [ iOS / macOS ]
 > iOS
What language do you want to use?? [ Swift / ObjC ]
 > ObjC
Would you like to include a demo application with your library? [ Yes / No ]
 > Yes
Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > None
Would you like to do view based testing? [ Yes / No ]
 > No
What is your class prefix?
 > ZS

4劝贸、完成以上問題后,終端輸出圖三逗宁,并會自動打開項目

image

5映九、然后我們配置ZSBaseTest.podspec文件

Pod::Spec.new do |s|
  s.name             = 'ZSBaseTest'
  s.version          = '0.1.0'            //版本號根據自己的版本設定
  s.summary          = '這是一個測試pod'    //這個描述要自己寫一個不要使用默認的,不然會給一個警告的

# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the description between the DESC delimiters below.
#   * Finally, don't worry about the indent, CocoaPods strips it!

  s.description      = <<-DESC
                        這個地方也是一個描述瞎颗,要比summary這個地方的描述多一些
                       DESC

  s.homepage         = 'https://github.com/AugustCloud/YHBaseTest'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { '這個是綁定的用戶名' => '這里是綁定的郵箱@163.com' }
  s.source           = { :git => 'https://github.com/AugustCloud/YHBaseTest.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

  s.ios.deployment_target = '9.0'

  s.source_files = 'YHBaseTest/Classes/**/*'

  # s.resource_bundles = {
  #   'YHBaseTest' => ['YHBaseTest/Assets/*.png']
  # }

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  # s.dependency 'AFNetworking', '~> 2.3'
end

三件甥、去GitHub上創(chuàng)建一個倉庫

1、如圖四創(chuàng)建一個新的倉庫

image

2哼拔、接下來就把自己的工程推送到GitHub上嚼蚀。

//打開當前項目所在文件夾
$ cd /Users/xiaohe/Desktop/Cocoapods/ZSBaseTest
$ git remote add origin 此為GitHub上面的倉庫地址
$ git add .
$ git commit -m "first commit"
$ git push -u origin master

終端出現該輸出,標識上傳成功
To https://github.com/AugustCloud/YHBaseTest.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

3管挟、驗證本地podspec文件,使用如下指令

$ pod lib lint ZSBaseTest.podspec

如報錯:[!] ZSBaseTest did not pass validation, due to 1 warning (but you can use `--allow-warnings` to ignore it).
使用如下指令
$ pod lib lint --allow-warnings

只要見到 YHBaseTest passed validation. 就是成功通過了驗證轿曙。

到這我們只是創(chuàng)建了一個合格的空白的工程,并沒有任何的功能僻孝,接下來我們就來創(chuàng)建自己的代碼5嫉邸!4┟您单!

四、添加自己的庫文件

1荞雏、我們打開項目虐秦,創(chuàng)建一個類,聲明一個方法凤优,一遍來測試

- (void)testPrint {
    NSLog(@"哈哈哈悦陋,我的pod的打印");
}

2、要把創(chuàng)建的文件放入到Classes文件夾里面筑辨,并刪除ReplaceMe.m文件

image

3俺驶、添加完代碼,執(zhí)行以下指令上傳到遠程倉庫

$ git add .
$ git commit -m "添加測試代碼"
$ git push

4棍辕、發(fā)布項目到Cocoapods上去需要添加版本號的暮现,并創(chuàng)建同名分支branch,用如下指令添加版本號

//添加版本號
$ git tag -a 0.1.0 -m "版本0.1"
//創(chuàng)建同名分支
$ git branch 0.1.0
//查看版本號
$ git tag
//將本地的添加的tag同步到遠程代碼倉庫
$ git push --tag

五楚昭、驗證本地podspec文件

1栖袋、打開podspec所在文件目錄

$ cd podspec所在文件目錄

2、使用驗證命令

//YHBaseTest.podspec修改為自己的podspec文件名稱
$ pod spec lint ZSBaseTest.podspec

注:看到 ZSBaseTest.podspec passed validation. 就說明驗證通過

3抚太、如果失敗塘幅,輸出如下的日志

[!] TestLib did not pass validation, due to 3 warnings (but you can use `--allow-warnings` to ignore them).

那就是用如下的指令

$ pod lib lint --allow-warnings

六昔案、發(fā)布pod庫(就是提交podspec文件到Specs倉庫)

使用如下命令

//ZSBaseTest.podspec 就是自己的podspec文件名稱
$ pod trunk push ZSBaseTest.podspec

出現如下日志就表示發(fā)布成功了
Updating spec repo `trunk`
Validating podspec
Updating spec repo `trunk`

--------------------------------------------------------------------------------
 ??  Congrats

 ??  ZSBaseTest (0.1.0) successfully published
 ??  June 21st, 02:51
 ??  https://cocoapods.org/pods/YHBaseTest
 ??  Tell your friends!

需要注意的是,這種提交命令晌块,不允許你的podspec文件存在警告爱沟。若存在警告,則不能通過有效性驗證匆背,導致發(fā)布失敽羯臁!
我們就使用如下命令

$ pod trunk push ZSBaseTest.podspec --allow-warnings

到這里創(chuàng)建和發(fā)布就結束了6凼@ㄏ怼!可以使用了U浯佟A逑健!
之前幫點的郵箱也會受到發(fā)布成功的郵件V硇稹=空丁!穴翩!

七犬第、驗證和使用

1、可以使用pod搜索指令來驗證自己是否發(fā)布成功

$ pod search ZSBaseTest

有的時候會搜索不到芒帕,不要擔心歉嗓,使用移除索引來解決
$ rm ~/Library/Caches/CocoaPods/search_index.json
再次搜索時,會自動重新創(chuàng)建索引

如果在次執(zhí)行$ pod search ZSBaseTest背蟆,還是搜索不到發(fā)布的項目鉴分,不要著急,就使用pod setup來更新本地版本庫

如果在這里還是搜索不到带膀,那就不要在搜索了志珍,直接創(chuàng)建一個測試項目,創(chuàng)建Podfile文件本砰,導入pod 'ZSBaseTest'碴裙,使用pod install來拉取

$ pod install

或
$ pod update

這時候發(fā)現可以正常打導入我們自己的cocopods庫

推薦一款不錯的提示框ZSTips

pod導入方式: pod 'ZSTips'

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市点额,隨后出現的幾起案子,更是在濱河造成了極大的恐慌莺琳,老刑警劉巖还棱,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異惭等,居然都是意外死亡珍手,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琳要,“玉大人寡具,你說我怎么就攤上這事≈刹梗” “怎么了童叠?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長课幕。 經常有香客問我厦坛,道長,這世上最難降的妖魔是什么乍惊? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任杜秸,我火速辦了婚禮,結果婚禮上润绎,老公的妹妹穿的比我還像新娘撬碟。我一直安慰自己,他們只是感情好莉撇,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布呢蛤。 她就那樣靜靜地躺著,像睡著了一般稼钩。 火紅的嫁衣襯著肌膚如雪顾稀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天坝撑,我揣著相機與錄音静秆,去河邊找鬼。 笑死巡李,一個胖子當著我的面吹牛抚笔,可吹牛的內容都是我干的。 我是一名探鬼主播侨拦,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼殊橙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了狱从?” 一聲冷哼從身側響起膨蛮,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎季研,沒想到半個月后敞葛,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡与涡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年惹谐,在試婚紗的時候發(fā)現自己被綠了持偏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡氨肌,死狀恐怖鸿秆,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情怎囚,我是刑警寧澤卿叽,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站桩了,受9級特大地震影響附帽,放射性物質發(fā)生泄漏。R本人自食惡果不足惜井誉,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一蕉扮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧颗圣,春花似錦喳钟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蔽午,卻和暖如春易茬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背及老。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工抽莱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骄恶。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓食铐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親僧鲁。 傳聞我的和親對象是個殘疾皇子虐呻,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容