創(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ù)
- 注冊(cè)電腦
使用podspec文件中的郵箱和用戶名進(jìn)行注冊(cè)
pod trunk register youremail@qq.com 'yourname'
成功后你會(huì)收到一份郵件苹威,需要點(diǎn)擊驗(yàn)證。
可以使用 pod trunk me
查看自己的注冊(cè)信息
可以使用
pod trunk add-owner otheremail@qq.com
添加其他維護(hù)者提交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