在GitHub上做遠(yuǎn)程pod庫

準(zhǔn)備:

github賬號(hào)淳衙,在GitHub上新建一個(gè)工程(工程名稱就是這個(gè)庫的名稱)
cocoapods賬號(hào),注冊(cè)流程如下饺著,已注冊(cè)過的verbose可以不加
pod trunk register 郵箱地址 '用戶名' verbose
然后去郵箱看看箫攀,cocoapods官方會(huì)發(fā)一個(gè)郵件,點(diǎn)擊郵件里的鏈接進(jìn)行驗(yàn)證幼衰。
想驗(yàn)證是否注冊(cè)成功靴跛,成功的話會(huì)打印出來賬號(hào)郵箱等信息
pod trunk me

  - Name:     xinsun001
  - Email:    1453724801@qq.com
  - Since:    April 13th, 00:12
  - Pods:     None 

創(chuàng)建:

cd到要?jiǎng)?chuàng)建pod庫的目錄下,執(zhí)行
pod lib create XSPodDemo
工程名稱要和GitHub的一致渡嚣。
如果在已有的項(xiàng)目上梢睛,先cd到項(xiàng)目目錄,然后執(zhí)行
pod spec create 項(xiàng)目名
會(huì)出現(xiàn)Cloning `https://github.com/CocoaPods/pod-template.git` into `XSPodDemo`.
然后要等一會(huì)识椰,有可能會(huì)報(bào)超時(shí)錯(cuò)誤绝葡,這時(shí)候重新執(zhí)行命令就好,國內(nèi)墻的原因腹鹉。然后下面會(huì)有幾個(gè)問題藏畅,跟著提示回答一下就好

//平臺(tái)
What platform do you want to use?? [ iOS / macOS ]
 > iOS
//語言
What language do you want to use?? [ Swift / ObjC ]
 > ObjC
//是否需要一個(gè)demo工程
Would you like to include a demo application with your library? [ Yes / No ]
 > Yes
//測(cè)試框架
Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > None
//是否要UI測(cè)試
Would you like to do view based testing? [ Yes / No ]
 > No
//類名的前綴
What is your class prefix?
 > XS

創(chuàng)建好的工程會(huì)自動(dòng)打開


image.png

配置:

在 ./XSPodDemo/Podspec Metadata下面進(jìn)行配置,如果是已有的項(xiàng)目功咒,直接在項(xiàng)目下創(chuàng)建.podspec文件pod spec create 項(xiàng)目名愉阎,然后復(fù)制一個(gè)LECENSE文件
1 打開.podspec文件

# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
#
//這不要管
Pod::Spec.new do |s|
//庫的名稱绞蹦,不用改
  s.name             = 'XSPodDemo'、
//初始版本號(hào)榜旦,別動(dòng)
  s.version          = '0.1.0'
//對(duì)庫的簡(jiǎn)單概括
  s.summary          = 'pod管理測(cè)試demo'

# 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
TODO: Add long description of the pod here.
                       DESC
//庫的地址
  s.homepage         = 'https://github.com/xinsun001/XSPodDemo'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
//協(xié)議類型
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
//作者和郵箱
  s.author           = { 'xinsun001' => '1453724801@qq.com' }
//庫的地址和版本幽七,由于開發(fā)時(shí)還沒有版本,所以tag的版本還沒寫
  s.source           = { :git => 'https://github.com/xinsun001/XSPodDemo.git', :tag => s.version.to_s }
//社交賬號(hào)章办,不想寫就不寫
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
//最低支持的版本
  s.ios.deployment_target = '10.0'
//庫的本地路徑锉走,不要瞎寫
  s.source_files = 'XSPodDemo/Classes/**/*'
//指定文件類型,上面一行沒指定藕届,就會(huì)讀取所有的
  #  s.source_files = 'XSPodDemo/Classes/**/*.{h,m}'
//圖片路徑
  # s.resource_bundles = {
  #   'XSPodDemo' => ['XSPodDemo/Assets/*.png']
  # }
  # s.public_header_files = 'Pod/Classes/**/*.h'
//使用的frameworks
  # s.frameworks = 'UIKit', 'MapKit'
//其他依賴庫
  # s.dependency 'AFNetworking', '~> 2.3'
end

2:README.md
庫的介紹及使用等挪蹭,隨便寫,注意一下郵箱和作者名稱是不是你自己
3LISCENSE
協(xié)議文件休偶,看一下作者和郵箱就行

添加庫:

打開文件目錄梁厉,找到Classes文件夾,所有的實(shí)現(xiàn)文件都要放在這個(gè)目錄下面


image.png

到Example執(zhí)行pod install踏兜,然后打開工程词顾,看看pod文件里面,應(yīng)該已經(jīng)有你添加的那些文件了碱妆。


image.png

推送到遠(yuǎn)程:

這里的步驟和推送新的工程代碼一致肉盹,命令如下:
cd到工程目錄(含有REAMED.MD的那個(gè)目錄)

git init
//注意這里不要再用https的方式了,用ssh的方式疹尾,要先去github上給你的電腦配置key
git remote add origin git@github.com:xinsun001/XSPodDemo.git
git add .
git commit -m "你的描述"
git branch -M main
git push -u origin main

推送成功后再github上可以看到你的代碼了上忍。驗(yàn)證你的pod是否可用,要找一個(gè)帶有podfile的工程纳本,在里面添加你的依賴窍蓝,注意:git中間不要有空格
pod 'XSPodDemo', :git => "https://github.com/xinsun001/XSPodDemo.git"
在新的工程執(zhí)行pod install命令,查看是否拉取成功繁成。

image.png

O朋稀!=硗蟆面睛!鼓掌??,現(xiàn)在祠墅,自己的遠(yuǎn)程庫已經(jīng)成功了

通過trunk push發(fā)布到cocoapods上面:

執(zhí)行pod search XSPodDemo侮穿,你會(huì)發(fā)現(xiàn)搜不到,想要搜到的話毁嗦,必須要打tag亲茅,就像Masonry那樣,后面可以選擇版本號(hào),而且不用加:git地址.

git tag 0.1.0
git push --tags
//刪除本地tag
git tag -d name
//刪除遠(yuǎn)程tag
git tag -d [0.1.0] 
git push origin :refs/tags/0.1.0
//清除緩存
git rm -r --cached .

之后要把.podspec文件推到github的cocoapods工程的spec文件夾下面
查看.podspec是否合法:
pod lib lint --verbose
有報(bào)錯(cuò):
[!] XSPodDemo did not pass validation, due to 4 warnings (but you can use `--allow-warnings` to ignore them). You can use the `--no-clean` option to inspect any issue.
還沒有正式生成 release 版本克锣, github 上并沒有任何 tag茵肃,所以我們剛才填寫 .podspec 文件填寫 git 地址的時(shí)候沒有填寫指定 tag,可以根據(jù)提示先把警告忽略:
pod lib lint --allow-warnings

image.png

遠(yuǎn)程驗(yàn)證:
pod spec lint XSPodDemo.podspec --allow-warnings
image.png

提交到pod袭祟,這里要等蠻長(zhǎng)時(shí)間的验残,而且有幾率超時(shí)導(dǎo)致錯(cuò)誤。tag版本要指定巾乳,不然會(huì)報(bào)錯(cuò)
在.podspec中:
s.source = { :git => 'https://github.com/xinsun001/XSPodDemo.git', :tag => '0.1.0' }
推送:
pod trunk push XSPodDemo.podspec --verbose
如果有這個(gè)錯(cuò)誤:[!] The spec did not pass validation, due to 3 warnings (but you can use `--allow-warnings` to ignore them).
可以在后面加--allow-warnings把警告忽略掉
pod trunk push XSPodDemo.podspec --verbose --allow-warnings
如果是私有庫:
pod repo push youSpeces JCZJTest.podspec
youSpeces是你的cocoapods私有庫您没,pod的時(shí)候需要在文件最上面加trunk:
source 'https://github.com/CocoaPods/youSpeces.git'
成功后的打印

image.png

而且pod會(huì)給你的郵箱發(fā)送一個(gè)郵件
image.png

然后搜一下這個(gè)庫
pod search XSPodDemo
搜不到的話,先清除本地的search
rm ~/Library/Caches/CocoaPods/search_index.json
還不行的話胆绊,更新pod
pod repo update
什么還是搜不到氨鹏?那么可以放大招了,先pod repo
image.png

然后刪掉cocoapods
pod repo remove cocoapods
再重新添加進(jìn)來
pod repo add cocoapods https://github.com/CocoaPods/Specs.git
之后就是漫長(zhǎng)的等待压状,有可能會(huì)超時(shí)錯(cuò)誤仆抵,重試就好。添加成功后再執(zhí)行pod search XSPodDemo就可以看到了
image.png

之后就可以在podfile文件里面直接進(jìn)行引用了
pod 'XSPodDemo', '~> 0.1.0'

感謝閱讀种冬,如果覺得不錯(cuò)的話镣丑,給點(diǎn)個(gè)贊吧
本篇完!S榱健莺匠!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市十兢,隨后出現(xiàn)的幾起案子慨蛙,更是在濱河造成了極大的恐慌,老刑警劉巖纪挎,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異跟匆,居然都是意外死亡异袄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門玛臂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烤蜕,“玉大人,你說我怎么就攤上這事迹冤》碛” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵泡徙,是天一觀的道長(zhǎng)贴膘。 經(jīng)常有香客問我沽甥,道長(zhǎng)柬采,這世上最難降的妖魔是什么灯变? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮赌厅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己杉辙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布捶朵。 她就那樣靜靜地躺著蜘矢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪综看。 梳的紋絲不亂的頭發(fā)上品腹,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音寓搬,去河邊找鬼珍昨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛句喷,可吹牛的內(nèi)容都是我干的镣典。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼唾琼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼兄春!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锡溯,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤赶舆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后祭饭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芜茵,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年倡蝙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了九串。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寺鸥,死狀恐怖猪钮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胆建,我是刑警寧澤烤低,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站笆载,受9級(jí)特大地震影響扑馁,放射性物質(zhì)發(fā)生泄漏涯呻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一檐蚜、第九天 我趴在偏房一處隱蔽的房頂上張望魄懂。 院中可真熱鬧,春花似錦闯第、人聲如沸市栗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽填帽。三九已至,卻和暖如春咙好,著一層夾襖步出監(jiān)牢的瞬間篡腌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工勾效, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘹悼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓层宫,卻偏偏與公主長(zhǎng)得像杨伙,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子萌腿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

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