Cocoapods注冊Trunk
如果你想創(chuàng)建一個私有庫或者發(fā)布一個公有的pod庫之前银觅,你需要一個Cocoapods Trunk。注冊流程如下
# 下面命令包括[]在內(nèi)的內(nèi)容需根據(jù)自己信息輸入
$ pod trunk regist [your-email] '[your-name]' --description='[your-desc]'
> [your-email]:任意郵箱
> [your-name]:任意名字
> [your-desc]:一個簡單的描述
//注冊完成后骑歹,你可以通過下面命令查看信息
$ pod trunk me
一卖氨、創(chuàng)建一個私有庫
創(chuàng)建私有庫需要有2個私有倉庫,一個放podspec文件耀里,一個放代碼文件
1.1 在碼云上創(chuàng)建一個私有索引項目
首先在碼云上創(chuàng)建一個私有的SpecKit項目,用于存放podspec文件拾氓。因為是私有庫冯挎,所以你想讓別人使用需要給使用的人添加權(quán)限,既將對方添加到該項目中就可以了咙鞍。
地址:https://gitee.com/fanfan11/YZSpecKit.git
1.2 將托管平臺的索引庫地址添加到本地的repo倉庫中
pod repo add [本地文件名字] [遠程Git地址]
$ pod repo add YZNBaseKit https://gitee.com/fanfan11/YZSpecKit.git
執(zhí)行上面命令后在~/.cocoapods/repos路徑下會存在一個YZNBaseKit文件夾房官。
2.1 在碼云上創(chuàng)建一個私有項目
按照步驟1.1中創(chuàng)建另一個私有的YZNCommonView項目趾徽,用于存放pos庫中的代碼文件。
地址:https://gitee.com/fanfan11/YZNCommonView.git
2.2模板初始化
進入指定的目錄翰守,在ternimal中執(zhí)行
pod lib create [pod 庫的名字]
該命令其實是下載了一個pod模板孵奶,然后在內(nèi)部通過更改.podspec文件的配置定制化自己的pod
$ pod lib create YZNCommonView
執(zhí)行以上命令需要填寫以下問題
執(zhí)行完成后可以在你的目錄文件下多了一個YZNCommonView文件夾,內(nèi)部文件內(nèi)容如下
將編寫代碼放入文件夾中蜡峰,進入Example文件夾中執(zhí)行pod install了袁,成功后打開workspace文件,pod文件夾下已經(jīng)存在你編寫的代碼文件了
2.3修改podspec配置文件
關(guān)鍵字 | 含義 | 必填 |
---|---|---|
name | 框架名 | 是 |
version | 框架版本號 | 是 |
summary | 框架簡介 | 是 |
description | 框架詳細(xì)介紹 | 是 |
homepage | 主頁 | 是 |
license | 開源協(xié)議 | 是 |
author | 作者 | 是 |
source | 源碼Git地址 | 是 |
source_files | 源碼文件位置 | 是 |
deployment_target | 支持版本 | 是 |
frameworks | 依賴的系統(tǒng)框架 | 否 |
vendored_frameworks | 依賴的非系統(tǒng)框架 | 否 |
libraries | 依賴的系統(tǒng)靜態(tài)庫 | 否 |
vendored_libraries | 依賴的非系統(tǒng)靜態(tài)庫 | 否 |
dependency | 依賴的第三方庫 | 否 |
這里再添加一點湿颅,可以創(chuàng)建subspec早像。subspec可以將庫進行拆分,只導(dǎo)入部分代碼肖爵,并且在使用時分文件夾卢鹦。
使用方式:pod 'YZNCommonView/YZNComView'
s.subspec 'YZNComView' do |ss|
ss. source_files = 'YZNCommonView/Classes/CommonView/*'
# ss. dependency = ''
# ss. libraries = ''
end
2.4將項目代碼提交到碼云上
1、初始化git版本庫:git init
2劝堪、添加文件到本地庫:git add .
3冀自、提交文件到本地庫:git commit -m "msg(提交日志)"
4、關(guān)聯(lián)遠程庫:git remote add origin(可修改) branch_Name(為空時默認(rèn)為master) url
關(guān)聯(lián)之后可以用git remote -v 來檢查是否關(guān)聯(lián)成功
5秒啦、一般情況需要先pull一下:git pull origin master
一般情況下含有共同文件時需要執(zhí)行 git merge origin/master --allow-unrelated-histories
這之后解決一下沖突熬粗,重新提交
6、push到遠程庫:git push -u origin master
創(chuàng)建tag
$ git tag -a 0.0.1 -m "xxx"
$ git push origin --tags
2.5向索引庫提交spec文件
驗證本地和遠程忽略警告
$ pod lib lint --allow-warnings
$ pod spec lint --allow-warnings
有些非語法錯誤是不會給出錯誤原因的余境。這個時候可以使用“--verbose”來查看詳細(xì)的驗證過程來幫助定位錯誤驻呐。
pod lib lint --verbose
包含.a靜態(tài)庫,雖然這并不影響Pod的使用,但是驗證是無法通過的芳来『可以通過 --use-libraries 來讓驗證通過。
pod lib lint --verbose --use-libraries --allow-warnings
當(dāng)依賴庫中有私有庫的情況
pod lib lint --no-clean --allow-warnings --use-libraries --sources='https://github.com/CocoaPods/Specs.git,https://gitee.com/fanfan11/YZSpecKit.git'
pod spec lint --no-clean --allow-warnings --use-libraries --sources='https://github.com/CocoaPods/Specs.git,https://gitee.com/fanfan11/YZSpecKit.git'
驗證通過后即舌,提交spec文件
pod repo push YZNBaseKit YZNCommonView.podspec --verbose --use-libraries --allow-warnings
執(zhí)行上面命令是將YZNCommonView.podspec文件添加到.cocoapods/repo/YZNBaseKit中并提交到遠程倉庫佣盒。
最后:
包含私有庫,公有庫也要寫source顽聂。如果用trunk源 source 'https://cdn.cocoapods.org/'
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git' //清華源
source 'https://github.com/CocoaPods/Specs.git' //cocoapods老源