cocoapods私有庫創(chuàng)建流程

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í)行以上命令需要填寫以下問題


根據(jù)自己情況回答

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


文件夾內容

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


pod庫代碼

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老源

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容