創(chuàng)建自己的 pod 庫(kù) 并上傳

經(jīng)過(guò)長(zhǎng)時(shí)間的開(kāi)發(fā)汪茧,學(xué)習(xí)和沉淀椅亚,都會(huì)有一些自己好用的封裝的庫(kù),但是每次都導(dǎo)入代碼過(guò)于麻煩舱污,所以我們可以創(chuàng)建我們自己的 pod 庫(kù)呀舔,再用起來(lái)就會(huì)方便很多。下面就是小白創(chuàng)建和上傳的步驟和上傳中可能出現(xiàn)的問(wèn)題解決方法扩灯。

首先創(chuàng)建自己的 trunk 賬號(hào)

pod trunk me

查看是否有 trunk 賬號(hào)媚赖,如圖1,說(shuō)明有賬號(hào)

查看trunk賬號(hào)信息

如果查不到信息珠插,說(shuō)明沒(méi)有賬號(hào)惧磺,需要注冊(cè)賬號(hào)

pod trunk register 203***82@qq.com 'HJ'
[!] Please verify the session by clicking the link in the verification email that has been sent to 203***82@qq.com
登錄郵箱去驗(yàn)證

203***82@qq 郵箱是 GitHub 賬號(hào) 或者 碼云 賬號(hào) 'HJ' 是作者名稱,當(dāng)你上傳成功 pod 庫(kù)時(shí)顯示的名稱

創(chuàng)建項(xiàng)目上傳到 GitHub碼云

項(xiàng)目的創(chuàng)建就不在這里描述了捻撑,上傳項(xiàng)目以上傳GitHub為例

  1. 打開(kāi) GitHub 磨隘,并登錄賬號(hào)缤底。

  2. 創(chuàng)建項(xiàng)目

創(chuàng)建項(xiàng)目1
創(chuàng)建項(xiàng)目2
創(chuàng)建項(xiàng)目3

3.準(zhǔn)備上傳項(xiàng)目,首先在本地創(chuàng)建一個(gè)文件夾番捂,用來(lái)和 github 關(guān)聯(lián)个唧,文件夾隨意命名。

準(zhǔn)備文件夾

4.打開(kāi)終端白嘁,切入路徑到剛剛創(chuàng)建的文件夾中
切入路徑

5.開(kāi)始使用Git命令坑鱼,首先初始化Git環(huán)境

git init
初始化Git環(huán)境

6.關(guān)聯(lián)Git 庫(kù),使用剛剛創(chuàng)建的Git項(xiàng)目地址

git clone https://github.com/***/HJBaseTableView.git

然后就拉取到了項(xiàng)目的空文件夾,切換到空文件夾絮缅,然后把創(chuàng)建的項(xiàng)目?jī)?nèi)容拉進(jìn)來(lái)

項(xiàng)目?jī)?nèi)容拉進(jìn)來(lái)
項(xiàng)目文件描述

7.上傳代碼文件

git add . // 添加所有改動(dòng)文件
git commit -m '提交操作的描述' // 添加改動(dòng)描述
git push // 推送到GitHub

創(chuàng)建 podspec 文件

常用的語(yǔ)句

Pod::Spec.new do |spec|
  spec.name         = "HJBaseTableView"  // 庫(kù)名稱
  spec.version      = "0.0.1" // 庫(kù)版本
  spec.summary      = "Modules and components framework for iOS."  // 庫(kù)描述
  spec.authors      = { 'HJ' => '203***82@qq.com' }   // trunk 賬號(hào) 郵箱 (作者 : 郵箱)
  spec.description  = <<-DESC
    一個(gè)簡(jiǎn)單的TableView 內(nèi)部采用了 FDTemplateLayoutCell 計(jì)算和緩存高度,方便創(chuàng)建和使用鲁沥。
                   DESC  // 庫(kù)的詳細(xì)描述
  spec.homepage     = "https://github.com/***/HJBaseTableView" // 庫(kù)的Git地址主頁(yè)
  spec.license      = { :type => "MIT", :file => "LICENSE" }  // 固定的 版權(quán)校驗(yàn)
  spec.platform     = :ios, "9.0"   // 支持的最低版本 iOS
  spec.source       = { :git => "https://github.com/whhaijun/HJBaseTableView.git", :tag => spec.version }  //  庫(kù)的Git 下載地址 和 版本號(hào)
  spec.source_files  = "HJBaseTableView/HJBaseTableView/**/*"   //  庫(kù)的Git 資源文件(需要暴露的文件路徑,以 podspec 同級(jí)別為開(kāi)始  如 podspec文件 和第一個(gè) HJBaseTableView文件夾 同級(jí)別)
  spec.swift_version = '4.0'  //  可選 耕魄,支持的swift 最低版本
  spec.static_framework  =  true // 是否是靜態(tài)庫(kù)
  spec.requires_arc = true  // 是否是 arc 環(huán)境
  spec.dependency 'UITableView+FDTemplateLayoutCell', '1.6'  // 可選 画恰,依賴的第三方庫(kù)  UITableView+FDTemplateLayoutCell 和版本號(hào),版本號(hào)可選
end

需要注意的點(diǎn):

  • 首先創(chuàng)建的 pod 庫(kù)吸奴,最好自己驗(yàn)證一下允扇,是否正確有誤,
  • 支持的最低 iOS 版本
  • 支持的 swift 最低版本
  • 是否有依賴的第三方庫(kù)
    podspec 文件则奥,有很多字段考润,可以查看其它的文章查閱

創(chuàng)建LICENSE版權(quán)文件

步驟1
i步驟2
步驟3

點(diǎn)擊 Review and submit 按鈕提交,然后 commit, push到項(xiàng)目中读处。

提交tag版本

  • 需要注意的是tag版本要和 podspec 文件版本保持一致 spec.version = "0.0.1" // 庫(kù)版本
git tag  0.0.1
git push origin  0.0.1
提交tag版本成功
查看tag版本

Releases tag版本

Releases tag版本
Releases 成功

校驗(yàn)podspec文件

以上都準(zhǔn)備好之后糊治,可以開(kāi)始校驗(yàn)podspec文件并發(fā)布pod庫(kù)了。在終端 cd 到本地關(guān)聯(lián)項(xiàng)目路徑中

pod lib lint --allow-warnings
校驗(yàn)podspec文件

這一步可能會(huì)有一些問(wèn)題罚舱,但是當(dāng)時(shí)忘記記錄了井辜,大多數(shù)按照錯(cuò)誤提示都比較好改,下面有些常見(jiàn)的錯(cuò)誤:

  • spec.homepage 官網(wǎng)首頁(yè)地址錯(cuò)誤
  • spec.source 下載的Git地址不正確
  • 提示spec.source_files錯(cuò)誤管闷,需要注意的是 podspec文件和 source_files 文件是同級(jí)別開(kāi)始的
  • 如果確認(rèn) spec.source_files 編寫一定沒(méi)有錯(cuò)誤粥脚,那么有可能就是沒(méi)有上傳tag版本或Releases tag版本
  • 版權(quán)文件錯(cuò)誤或沒(méi)有找到


    錯(cuò)誤版權(quán)文件

上傳發(fā)布

再校驗(yàn) podspec文件成功之后,基本就沒(méi)有什么問(wèn)題了包个,可以大多數(shù)可以一遍成功刷允。

pod trunk push HJBaseTableView.podspec --use-libraries --allow-warnings
發(fā)布成功

如何有錯(cuò)誤,和上一步一樣碧囊,一樣一樣的解決恃锉,修改完錯(cuò)誤,記得更新 tag Edit Release呕臂。

沒(méi)有問(wèn)題之后就可以驗(yàn)證是否成功了破托,可以用 pod search HJBaseTableView 來(lái)查看

表示上傳成功

如果沒(méi)有找到,那就更新一下本地 pod 庫(kù)

pod  repo   update
pod install --repo-update

pod repo updatepod install --repo-update歧蒋,在項(xiàng)目中這兩個(gè)些時(shí)候可以等同土砂。如果沒(méi)有在項(xiàng)目中州既,就是用pod repo update更新,更新可能會(huì)有點(diǎn)慢萝映。

當(dāng)有新的版本上傳時(shí)吴叶,本地的項(xiàng)目中想要更換 ,也需要先更新本地pod庫(kù)序臂,然后再更新項(xiàng)目 蚌卤。可以使用 pod repo update + pod install 或 直接 pod install --repo-update

pod  repo   update
pod install --repo-update
pod update HJBaseTableView --verbose --no-repo-update

pod update HJBaseTableView --verbose --no-repo-update 只更新項(xiàng)目中的HJBaseTableView第三方庫(kù)奥秆,其他的不更新逊彭,這樣就不用更新所有版本了。

刪除上傳的Pod庫(kù)构订,或者棄用pod庫(kù)

如果我們想刪除一個(gè)已有的庫(kù)侮叮,可以使用下面的指令:

pod trunk delete NAME 0.0.1 刪除某個(gè)版本
pod repo remove NAME 刪除某個(gè)版本
pod trunk deprecate NAME 棄用某個(gè)倉(cāng)庫(kù),不會(huì)刪除悼瘾,但是是下載時(shí)會(huì)有提示已棄用

/// 刪除囊榜,后面需要跟上版本號(hào)
pod trunk delete LZScaner 0.0.1
/// 刪除某個(gè)庫(kù)
pod repo remove NAME
/// 棄用某個(gè)庫(kù)
pod trunk deprecate LZScaner

如果使用 delete 指令會(huì)有下面的提醒:

WARNING: It is generally considered bad behavior to remove versions of a Pod that others are depending on!
Please consider using the `deprecate` command instead.

Are you sure you want to delete this Pod version?
> 

這時(shí),輸入y亥宿,回車即可卸勺!

發(fā)布pod庫(kù)中遇到的問(wèn)題

1、運(yùn)行pod lib lint --allow-warnings校驗(yàn) podspec文件時(shí)報(bào)錯(cuò)

xcodebuild: Returned an unsuccessful exit code. You can use '--verbose' for more information.

嘗試解決:pod spec lint ****.podspec --verbose

2烫扼、運(yùn)行pod lib lint --allow-warnings校驗(yàn) podspec文件時(shí)報(bào)錯(cuò)

* ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code.

嘗試解決:在驗(yàn)證后面加上 --skip-import-validation
pod lib lint --allow-warnings --skip-import-validation

3孔庭、發(fā)布時(shí),運(yùn)行pod trunk push HJBaseTableView.podspec --use-libraries --allow-warnings時(shí)報(bào)錯(cuò)

Authentication token is invalid or unverified. Either verify it with the email that was sent or register a new session.

嘗試解決:第一步 查看 pod trunk me 是否可以查看到信息材蛛。
如果 pod trunk me 報(bào)錯(cuò), 需要到 注冊(cè)的 trunk 郵箱進(jìn)行驗(yàn)證(會(huì)有驗(yàn)證郵件)

trunk郵箱驗(yàn)證.png

4怎抛、發(fā)布時(shí) pod 成功之后卑吭,pod search CMSPaaS 報(bào)錯(cuò)時(shí)

Unable to find a pod with name, author, summary, or description matching ‘CMSPaaS’CocoaPods was not able to update the 'cocoapods' repo. If this is an unexpected issue and persists you can inspect it running 'pod repo update --verbose'

嘗試解決:刪除原來(lái)的查詢json文件

rm ~/Library/Caches/CocoaPods/search_index.json

再次pod search CMSPaaS

^ 0_0 ^ -- Bright: 祝大家開(kāi)心快樂(lè)每一天。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末马绝,一起剝皮案震驚了整個(gè)濱河市豆赏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌富稻,老刑警劉巖掷邦,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異椭赋,居然都是意外死亡抚岗,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門哪怔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宣蔚,“玉大人向抢,你說(shuō)我怎么就攤上這事∨呶” “怎么了挟鸠?”我有些...
    開(kāi)封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)亩冬。 經(jīng)常有香客問(wèn)我艘希,道長(zhǎng),這世上最難降的妖魔是什么硅急? 我笑而不...
    開(kāi)封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任覆享,我火速辦了婚禮,結(jié)果婚禮上铜秆,老公的妹妹穿的比我還像新娘淹真。我一直安慰自己,他們只是感情好连茧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布核蘸。 她就那樣靜靜地躺著,像睡著了一般啸驯。 火紅的嫁衣襯著肌膚如雪客扎。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天罚斗,我揣著相機(jī)與錄音徙鱼,去河邊找鬼。 笑死针姿,一個(gè)胖子當(dāng)著我的面吹牛袱吆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播距淫,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼绞绒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了榕暇?” 一聲冷哼從身側(cè)響起蓬衡,我...
    開(kāi)封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎彤枢,沒(méi)想到半個(gè)月后狰晚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缴啡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年壁晒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片业栅。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡讨衣,死狀恐怖换棚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情反镇,我是刑警寧澤固蚤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站歹茶,受9級(jí)特大地震影響夕玩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜惊豺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一燎孟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尸昧,春花似錦揩页、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至幢妄,卻和暖如春兔仰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蕉鸳。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工乎赴, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人潮尝。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓榕吼,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親勉失。 傳聞我的和親對(duì)象是個(gè)殘疾皇子羹蚣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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