前言
文本將從零開始介紹如何使用cocoaPods
發布自己的開源庫
第一步:注冊Trunk
-
查看當前
pod
版本pod --version
-
如果未安裝
pod
,需下載安裝sudo gen install cocoapods pod setup
-
查看自己是否注冊過
Trunk
pod trunk me
如果輸出您的郵箱信息等,說明您已經注冊過了,無需重新注冊
-
注冊
pod trunk register 您的郵箱地址@163.com "用戶名" --verbose
您的郵箱地址@163.com
- 這里輸入您的郵箱地址
用戶名
- 這里輸入您的用戶名注冊完成后,會給您的郵箱發送一封郵件,您需要進入郵箱,打開郵件中的鏈接,完成驗證即可
-
驗證是否注冊成功
pod trunk me
觀察是否會輸出用戶信息,注冊如果成功會打印出您的郵箱和用戶名
第二步:創建項目
-
到
github
上創建一個新項目- 進入您的git賬號,點擊
+
, 選擇New Repository
, 新建項目 - 輸入項目名稱(注意:這里的項目名是你要發布庫的名字如
ChXAnimation
而不是你的工程名如ChXAnimationDemo
)、填寫描述,選擇初始化一個README
文件,選擇MIT
的授權文件
- 進入您的git賬號,點擊
Clone 到本地(使用
git
命令)
打開終端,cd
到您想存放項目的地方,如文檔文件夾
cd ~/文檔
在 github
上復制剛創建項目的鏈接地址,例如: https://github.com/sunrisechen007/ChXCategorys.git
clone
git clone https://github.com/sunrisechen007/ChXCategorys.git
- 添加要發布的庫內容,如需要發布
ChXCategory
這個文件夾里的文件,直接把該文件夾拖入當前項目根目錄中
第三步:配置信息
-
創建
.podspec
文件,用以配置pod
發布庫的信息cd 到剛 cloen 的項目中 ,輸入命令
pod spec create ChXCategorys
上面
ChXCategorys
是您要發布框架的名字,和git
上項目的名稱(https://github.com/sunrisechen007/ChXCategorys.git
)保持一致注意這里的
podspec
文件名ChXCategorys
和您要發布庫存放的文件夾ChXCategory
是可以一樣的
-
編輯
.podspec
文件使用文本編輯工具打開剛建的
podspec
文件,刪除里面的默認代碼,按照下面格式輸入代碼Pod::Spec.new do |s| s.name = "ChXCategorys" s.version = "0.0.1" s.ios.deployment_target = '8.0' s.summary = “簡介" s.homepage = "https://github.com/zhangyqyx/ChXCategorys" s.social_media_url = 'https://www.baidu.com' s.license = "MIT" s.author = { "xuchen" => "xxx@163.com" } s.source = { :git => 'https://github.com/zhangyqyx/ChXCategorys.git', :tag => s.version} s.requires_arc = true s.source_files = ‘ChXCategory/*' #依賴庫,不能依賴未發布的庫 #s.dependency = 'AFNetworking' , 'SDWebImage' end
下面是這些參數的意思,也很好理解,根據實際相應修改即可
s.name
-> 項目名 ,即使你要發布庫的名字
version
-> tag 版本號(每次發布都需要修改)
...
s.source_files -> 這個是指定您要發布庫的文件夾位置的,我這里是把文件都放在了ChXCategory
里了,后面的/*
表示該文件夾里的所有文件,當然您也可以寫成*.{h,m}
表示里面的所有 .h 和 .m 文件如果
ChXCategory
里又嵌套了一個文件夾,您可以使用代碼‘ChXCategory/*','ChXCategory/*/*'
目錄圖參考如下:
mulu.png
第四步:發布
-
上傳到
github
(使用Git
命令行)將修改后的本地項目文件,提交到線上
1. git add . 2. git commit -m "提交說明文字" 3. git push origin master
add
是將代碼從工作區提交到暫存區,.
表示提交所有文件
commit
是將代碼從暫存區提交到版本庫,-m
后面需要填寫更新日志
push
是推送到遠程主分支,您也可以推送到其它相應分支
-
打
tag
每次發布都得重新設置tag
1. git tag 1.0.0 2. git push --tags 3. git push origin master
可以使用
git tag
查看當前存在的tag
每次打完tag
之后,記得要推送(push
)到遠程分支
-
驗證
.podspec
文件內容是否正確pod spec lint ChXCategorys.podspec --verbose
ChXCategorys.podspec
這就是您項目中新建的 podspec 文件,需替換成您的
注意:
如果驗證出現錯誤,修改完成后,需要把修改完成后的項目重新提交到 git
上,打 tag
,每次驗證都需要修改下版本號 ;tag 要加 1 ,podspec文件里的 s.version 也加 1
-
可以發布啦
當驗證完成無報錯時,下面我們就可以發布我們的庫了
pod trunk push ChXCategorys.podspec
耐心等待一會兒,結果出現有 Congrats 時,說明您的庫已經發布成功啦。
-
驗證
pod search ChXCategorys
輸入以上命令,如果可以搜索到的話,那么恭喜.
如果搜索不到,出現如下錯誤提示[!] Unable to find a pod with name, author, summary, or description matching `xxx`
而你確認已經發布成功的話,那么你可以
- 前往 資源庫 去刪除 cocoapod 緩存中的 search_index.json 文件,重新搜索一次再試試,
有點慢,需要等待一會兒
- json文件路徑: /Users/xx/Library/Caches/CocoaPods (
xx
是你的電腦賬戶名)
- 前往 資源庫 去刪除 cocoapod 緩存中的 search_index.json 文件,重新搜索一次再試試,
使用
進入到項目中,在 podfile
文件中添加 pod ChXCategorys
(ChXCategorys
您的庫名),然后執行 pod install
就可以下載到您的庫了