Cocoapods注冊Trunk
如果你想創(chuàng)建一個私有庫或者發(fā)布一個公有的pod庫之前,你需要一個Cocoapods Trunk。注冊流程如下
# 下面命令包括[]在內的內容需根據(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文件。因為是私有庫,所以你想讓別人使用需要給使用的人添加權限,既將對方添加到該項目中就可以了。
地址: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模板,然后在內部通過更改.podspec文件的配置定制化自己的pod
$ pod lib create YZNCommonView
執(zhí)行以上命令需要填寫以下問題

執(zhí)行完成后可以在你的目錄文件下多了一個YZNCommonView文件夾,內部文件內容如下

將編寫代碼放入文件夾中,進入Example文件夾中執(zhí)行pod install,成功后打開workspace文件,pod文件夾下已經(jīng)存在你編寫的代碼文件了

2.3修改podspec配置文件

| 關鍵字 | 含義 | 必填 |
|---|---|---|
| name | 框架名 | 是 |
| version | 框架版本號 | 是 |
| summary | 框架簡介 | 是 |
| description | 框架詳細介紹 | 是 |
| 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可以將庫進行拆分,只導入部分代碼,并且在使用時分文件夾。
使用方式: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、關聯(lián)遠程庫:git remote add origin(可修改) branch_Name(為空時默認為master) url
關聯(lián)之后可以用git remote -v 來檢查是否關聯(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”來查看詳細的驗證過程來幫助定位錯誤。
pod lib lint --verbose
包含.a靜態(tài)庫,雖然這并不影響Pod的使用,但是驗證是無法通過的??梢酝ㄟ^ --use-libraries 來讓驗證通過。
pod lib lint --verbose --use-libraries --allow-warnings
當依賴庫中有私有庫的情況
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老源