本文主要介紹如何自己寫(xiě)一個(gè)pod钢属,然后注冊(cè)到CocoaPods上徘熔,并將代碼放到Github上供別人下載鳍怨。這基本上是任何一個(gè)pod的“標(biāo)準(zhǔn)”上架流程齿穗。當(dāng)然你也可以將pod放到其他的git平臺(tái)上涉波。
1> 注冊(cè)trunk賬號(hào)
pod trunk register 您的github郵箱'github的用戶名' --verbose
第一次嘗試的時(shí)候可能會(huì)報(bào)如下錯(cuò)誤:
[!] There was an error registering with trunk: getaddrinfo: nodename nor servname provided, or not known
可以修改DNS來(lái)解決這個(gè)問(wèn)題
1、打開(kāi)
2祟峦、點(diǎn)擊網(wǎng)絡(luò)
3罚斗、高級(jí)
4、DNS? 雙擊DNS服務(wù)器進(jìn)行修改(不要修改太大了例如:223.6.6.6 -> 223.6.6.7)? -> 點(diǎn)擊好 ->應(yīng)用
5宅楞、終端執(zhí)行命令?
?pod trunk register 您的github郵箱 'github的用戶名' --verbose
注冊(cè)成功之后會(huì)有如下提示:
[!] Please verify the session by clicking the link in the verification email that has been sent to qcl901028@gmail.com
并向您的郵箱發(fā)送一個(gè)郵件點(diǎn)擊里面的鏈接激活就可以了
查看個(gè)人信息
pod trunk me
2> 添加podspec描述文件
這個(gè)文件是為了讓CocoaPods搜索引擎知道代碼作者针姿、名稱(chēng)、版本號(hào)厌衙、源代碼地址距淫、依賴(lài)庫(kù)等等信息。下面是官方的信息文件的例子(你也可以去下面cocoapods的官方網(wǎng)站去查看?http://guides.cocoapods.org?):
1.創(chuàng)建podSpec文件主要用到pod lib工具:
手動(dòng)創(chuàng)建podSpec文件婶希,your_pod_spec_name 最好和你的庫(kù)的名字一樣
pod spec create your_pod_spec_name
這個(gè)時(shí)候會(huì)生成一個(gè)文件到本地? your_pod_spec_name.podspec 你可以用記事本打開(kāi)這個(gè)文件(文件位置在你終端操作的目錄下面)如下圖:
找到文件之后榕暇,用記事本打開(kāi)(當(dāng)然你也可以裝逼的用vim + 文件名的方式打開(kāi),然后按1000dd來(lái)清楚內(nèi)容 ?呃呃呃喻杈。彤枢。。不知道有沒(méi)有命令可以刪除全部?jī)?nèi)容 每次清除的時(shí)候都是清除10000行筒饰,來(lái)達(dá)到全部清清空的效果) ,然后全選刪除缴啡。?
小小都比一下 我們來(lái)看看我們偉大的杰哥是怎么寫(xiě)這個(gè)文件的
Pod::Spec.new do |s|
s.name? ? ? ? = 'MJRefresh'
s.version? ? ? = '3.1.12'
s.summary? ? ? = 'An easy way to use pull-to-refresh'
s.homepage? ? = 'https://github.com/CoderMJLee/MJRefresh'
s.license? ? ? = 'MIT'
s.authors? ? ? = {'MJ Lee' => '199109106@qq.com'}
s.platform? ? = :ios, '6.0'
s.source? ? ? = {:git => 'https://github.com/CoderMJLee/MJRefresh.git', :tag => s.version}
s.source_files = 'MJRefresh/**/*.{h,m}'
s.resource? ? = 'MJRefresh/MJRefresh.bundle'
s.requires_arc = true
end
s.name ?庫(kù)名 ?就是將來(lái)你要導(dǎo)入文件時(shí)候的名字 ?如:pod MJRefresh
s.version 庫(kù)的版本號(hào) ?杰哥已經(jīng)更新到3.1.12
s.summary ?總結(jié) ?寫(xiě)自己項(xiàng)目的用途的
s.homepage 你的庫(kù)的首頁(yè)地址? 不明白可以自行打開(kāi)github MJRefresh 看項(xiàng)目結(jié)構(gòu)
s.license? ? ? = 'MIT' ?這樣寫(xiě)就行了 ?這個(gè)是一個(gè)許可證 。不知道有啥作用
s.authors? ? ? = {'用戶名' => 'github郵箱地址'}
s.platform? ? = :ios, '你的庫(kù)最低支持的版本'
s.source? ? ? = {:git => '項(xiàng)目首頁(yè)地址/庫(kù)名.git', :tag => s.version}
s.source_files = 'MJRefresh/**/*.{h,m}' 這個(gè)是你的庫(kù)文件夾路徑 ?這個(gè)表示的是MJRefresh文件夾下的所有.h.m文件 ?
s.resource? ? = 'MJRefresh/MJRefresh.bundle' ?圖片或者一些資源文件的位置路徑
s.requires_arc = true ?是不是arc
當(dāng)然這些只是一些常用的 (⊙o⊙)…? 暫且稱(chēng)他為參數(shù)吧 (我真不知道這是個(gè)什么鳥(niǎo)東西瓷们,不知道怎么去稱(chēng)呼他s.name )业栅。如果需要更多信息 ?用AF 或者sd 一類(lèi)的第三方去查看寫(xiě)的什么
額 ,好吧 换棚!廢話過(guò)多式镐。反镇。固蚤。
2. 驗(yàn)證podSpec文件是否正確。
pod lib lint?
3.增加git 版本 ??
1歹茶、git add -A
2夕玩、git commit -m "first commit for version 1.0.0"
3、git push origin master
1惊豺、當(dāng)然燎孟,你也可以使用SourceTree等GUI形式的Git客戶端進(jìn)行代碼的推送操作。
2尸昧、確保你所push的代碼已經(jīng)打上"version tag"揩页,也就是給源代碼打上版本號(hào)標(biāo)簽:
4、git tag '1.0.0'
5烹俗、git push --tags
3爆侣、需要注意的是? 版本最好和podspec文件中的版本保持一致
4. 用trunk推送podspec文件
確保podspec文件已校驗(yàn)通過(guò)之后萍程,用以下命令將該podspec文件上傳至trunk? (your_pod_spec_name.podspec)這個(gè)是你自己創(chuàng)建的podspec文件
pod trunk push your_pod_spec_name.podspec
成功之后,就pod Search + 你的庫(kù)名 ?看看是不是很驚喜 ?擁有了自己的項(xiàng)目
參考:
1兔仰、CocoaPods官方教程