使用CocoaPods上傳自己的依賴庫(kù)

創(chuàng)建一個(gè)Git項(xiàng)目

項(xiàng)目?jī)?nèi)容

  • 項(xiàng)目文件
  • YourProjectName.podspec文件(CocoaPods配置文件)
    文件創(chuàng)建:使用終端命令
pod spec create [YourProjectName|ProjectUrl] 

例:

pod spec create YourProjectName|https://git.coding.net/User/YourProject.git

創(chuàng)建podspec文件边翁,使用命令

chmod +x YourProjectName.podspec

將文件轉(zhuǎn)換成 Unix executable 文件

文件內(nèi)容:

Pod::Spec.new do |s|
  s.name = 'YourProjectName'
  s.version = '1.0.0'
  s.license = 'MIT'
  s.summary = 'Project Summary'
  s.homepage = 'https://www.baidu.com'
  s.social_media_url = 'https://www.baidu.com'
  s.authors = { 'YourName' => 'yourname@qq.com' }
  s.source = { :git => 'https://git.coding.net/User/YourProject.git', :tag => s.version }

  s.ios.deployment_target = '9.0'

  # 指定你的三方文件(使用通配符寺鸥,建議拿其他三方庫(kù)的文件進(jìn)行修改)
  s.source_files = 'YourProject/*.swift'
  s.dependency 'AFNetworking', '~> 2.3'   #依賴關(guān)系棠涮,該項(xiàng)目所依賴的其他庫(kù)拐纱,如果有多個(gè)需要填寫多個(gè)s.dependency
end

該文件中 s.version 指定的版本號(hào)需要在Git上添加tag標(biāo)記两踏,該標(biāo)記是給版本指定項(xiàng)目分支(如果沒(méi)有添加或者格式錯(cuò)誤连舍,上傳和獲取的時(shí)候會(huì)產(chǎn)生branch錯(cuò)誤)

  • .swift-version文件(項(xiàng)目Swift版本說(shuō)明文件,CocoaPods默認(rèn)Swift版本是3.0)
    文件內(nèi)容:Swift版本號(hào)蹲蒲。例:
3.1
  • LICENSE文件(該文件是版權(quán)說(shuō)明文件番甩,不提供該文件CocoaPods不會(huì)幫你自動(dòng)配置項(xiàng)目)
    文件創(chuàng)建:使用終端命令
vim LICENSE

創(chuàng)建文本文件(文件名:LICENSE),使用命令

chmod +x LICENSE

將文件轉(zhuǎn)換成 Unix executable 文件

文件內(nèi)容:授權(quán)說(shuō)明届搁。例:

Copyright ? 2017年 YourName. All rights reserved. 
other info...

私有三方庫(kù)

當(dāng)創(chuàng)建了一個(gè)Git項(xiàng)目后对室,就有了一個(gè)私有的三方庫(kù),可直接在Podfile文件中添加代碼

 pod 'YourProjectName', :git => ' https://git.coding.net/User/YourProject.git'

然后

pod install
或
pod update

公有三方庫(kù)

Trunk

以上的方法咖祭,使用 pod search 是搜不到你的庫(kù)的,因?yàn)檫@只是你私有的庫(kù)而已蔫骂。在你本地么翰,前往~/.cocoapods/repos/master/Specs,你會(huì)看到CocoaPods所有公有的開(kāi)源庫(kù)配置辽旋,這個(gè)通過(guò)cocoapod官方在github的specs來(lái)管理浩嫌,地址為https://github.com/CocoaPods/Specs 檐迟。說(shuō)到這里,你會(huì)想把這個(gè)庫(kù)fork分支下來(lái)码耐,clone到你本地追迟,把自己的YourProjectName.podspec加入,然后add骚腥、commit敦间、 push,最后在github上pull request來(lái)和官方的主分支合并,可是你會(huì)發(fā)現(xiàn)請(qǐng)求馬上被自動(dòng)關(guān)閉束铭。WHY!!!!!! 雖然一開(kāi)始使用GitHub Pull Requests來(lái)整理所有公共pods效果很好廓块。但是,隨著Pod數(shù)量的增加契沫,這個(gè)工作對(duì)于spec維護(hù)人員Keith Smiley來(lái)說(shuō)變得十分繁雜带猴。甚至一些沒(méi)有通過(guò)$ pod lint的spec也被提交上來(lái),造成repo無(wú)法build懈万。 CocoaPods 0.33中加入了Trunk服務(wù)拴清。CocoaPods Trunk服務(wù)的引入,解決了很多類似的問(wèn)題会通。CocoaPods作為一個(gè)集中式的服務(wù)口予,使得分析和統(tǒng)計(jì)平臺(tái)數(shù)據(jù)變得十分方便。下面來(lái)說(shuō)說(shuō)怎么分布CocoaPod渴语。

使用Trunk服務(wù)

  1. 注冊(cè)電腦
    使用podspec文件中的郵箱和用戶名進(jìn)行注冊(cè)
pod trunk register youremail@qq.com 'yourname'

成功后你會(huì)收到一份郵件苹威,需要點(diǎn)擊驗(yàn)證。

可以使用 pod trunk me 查看自己的注冊(cè)信息

  1. 可以使用 pod trunk add-owner otheremail@qq.com 添加其他維護(hù)者

  2. 提交podspec文件

pod trunk push YourProjectName.podspec

在提交之前你可以使用 pod spec lint YourProjectName.podspec 驗(yàn)證你本地的podspec文件(是否有錯(cuò)誤)
如果驗(yàn)證成功的話會(huì)顯示

YourProjectName.podspec passed validation.

但你收到類似消息驾凶,如:

[!] /usr/bin/git clone https://github.com/User/YourProject.git /var/folders/z2/h6c1f1hj72b6p5y3dhgjd27c0000gn/T/d20150827-4039-1ujw0u9 --single-branch --depth 1 --branch v1.0.0Cloning into '/var/folders/z2/h6c1f1hj72b6p5y3dhgjd27c0000gn/T/d20150827-4039-1ujw0u9'...
warning: Could not find remote branch v1.0.0 to clone.
fatal: Remote branch v1.0.0 not found in upstream originUnexpected end of command stream

這是因?yàn)镚it項(xiàng)目沒(méi)有給分支添加tag標(biāo)記或者tag標(biāo)記格式錯(cuò)誤
如果錯(cuò)誤提示是 branch v1.0.0牙甫,格式就是v+版本號(hào)
如果錯(cuò)誤提示是 branch 1.0.0,格式就是版本號(hào)

等待部署成功调违。

上面的代碼做了三件事: *驗(yàn)證你的podspec文件是否合法窟哺。在trunk方式之前我們一般用“pod spec lint”命令進(jìn)行驗(yàn)證。 *上傳podspec文件到trunk服務(wù)器(其實(shí)最終也會(huì)自動(dòng)添加到https://github.com/CocoaPods/Specs中技肩,只是使用trunk方式省去了以前先f(wàn)ork在pull request的繁瑣操作) *將你上傳的podspec文件轉(zhuǎn)成json格式文件
執(zhí)行上面的push操作且轨,就相當(dāng)于你把你的源代碼提交給CocoaPods團(tuán)隊(duì)審核了,一般需要一到兩個(gè)工作日可以審核結(jié)束虚婿。這種心情有點(diǎn)像提交App給Apple審核旋奢,哈哈。

其實(shí)在這里就可以使用 pod 'YourProjectName' 來(lái)安裝自己的CocoaPods依賴庫(kù)然痊,只是不能 pod search 到而已

查看我們自己創(chuàng)建的pods依賴庫(kù) 如果收到了cocoapods官方發(fā)過(guò)來(lái)的審核通過(guò)郵件后至朗,你很急著用pod search命名肯定會(huì)失望,沒(méi)收到剧浸,還記得我們本地的~/.cocoapods/repos/master/Specs嗎锹引,還沒(méi)跟官方的github上的Specs同步矗钟, 執(zhí)行一次
pod setup
或者
pod update
來(lái)更新本地緩存的Spec庫(kù),再去search就能看到了
就能夠用
pod 'YourProjectName', '~> 1.0.0'
這樣去安裝自己pod依賴庫(kù)了 而.podspec文件也可以作為管理內(nèi)部代碼的利器
pod 'Z', :path => 'path/to/directory/with/podspec'

這里不要使用 pod install嫌变,這行命令不會(huì)更新本地的三方庫(kù)列表

參考: http://m.blog.csdn.net/bluefish89/article/details/48030941

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吨艇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子腾啥,更是在濱河造成了極大的恐慌东涡,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碑宴,死亡現(xiàn)場(chǎng)離奇詭異软啼,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)延柠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門祸挪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人贞间,你說(shuō)我怎么就攤上這事贿条。” “怎么了增热?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵整以,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我峻仇,道長(zhǎng)公黑,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任摄咆,我火速辦了婚禮凡蚜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吭从。我一直安慰自己朝蜘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布涩金。 她就那樣靜靜地躺著谱醇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪步做。 梳的紋絲不亂的頭發(fā)上副渴,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音全度,去河邊找鬼煮剧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛讼载,可吹牛的內(nèi)容都是我干的轿秧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼咨堤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼菇篡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起一喘,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤驱还,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后凸克,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體议蟆,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年萎战,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了咐容。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蚂维,死狀恐怖戳粒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情虫啥,我是刑警寧澤蔚约,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站涂籽,受9級(jí)特大地震影響苹祟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜评雌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一树枫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧柳骄,春花似錦团赏、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至曲初,卻和暖如春体谒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背臼婆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工抒痒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颁褂。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓故响,卻偏偏與公主長(zhǎng)得像傀广,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子彩届,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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