1、git伺服器建立一個項目。
2、Clone項目到本地,到本地後是一個空目錄,還沒有工程。
3、建立一個工程。
1.打開終端,切換到該目錄
cd /Users/lmy/Desktop/XesAppMultimedia
2、建立工程模闆
pod lib create XesAppMultimedia
3、配置相關選擇。
選擇平台
What platform do you want to use?? [ iOS / macOS ]
iOS
選擇語言
What language do you want to use?? [ Swift / ObjC ]
ObjC
是否自動生成demo,選擇Yes,友善以後測試
Would you like to include a demo application with your library? [ Yes / No ]
Yes
是否內建測試架構
Which testing frameworks will you use? [ Specta / Kiwi / None ]
None
UI 測試
Would you like to do view based testing? [ Yes / No ]
No
指定類字首
What is your class prefix?
XesApp
4、執行完之後,自動打開項目。
4、編寫podspec檔案。
1、 目錄下檔案介紹
- podspec這個檔案主要是用來描述項目名稱、pod的版本号、介紹、首頁(homepage)、作者資訊、git源等,具體的可以參看官方Podspec Syntax Reference
- README使用過GitHub的都會知道README檔案的重要性,這個檔案可以使用Markdown文法,主要展示在GitHub工程上的首頁。README檔案對于使用這個pod庫的人來說,有和沒有這個檔案,差別是很明顯的,此外這還有助于建立一個高品質的 CocoaPods Quality Index ;
- LICENSE要想是Spec倉庫接收,就必須包含一個license。指令pod lib create 自動建立使用的是 MIT license;
2、如果用第3步的指令建立工程模闆,那麼工程的目錄下已經自動生成了.podspec(XesAppMultimedia.podspec)。如果是已有的工程或者庫檔案目錄,也可以利用Pod指令自己制作.podspec檔案,指令如下:
pod spec cretae <元件庫名>
PS注意:自動生成的podspec檔案隻是模闆,需要結合工程的庫檔案、資源目錄、遠端代碼倉庫(第1步建立的遠端代碼倉庫)修改補充podspec檔案。
5、驗證.podspec檔案的格式是否正确
1、cd 到 *.podspec 檔案所在的目錄下,用到的一些指令
pod lib lint
解說:本地驗證pod能否通過驗證,如果失敗使用下面指令:pod lib lint --verbose檢視失敗原因, 或使用pod lib lint --allow-warnings忽略警告錯誤
pod spec lint
解說:本地和遠端驗證pod能否通過驗證,需要更新送出podspec到遠端specs倉庫,參考第7步,一般本地驗證通過即可送出到遠端specs倉庫
pod lib lint --verbose
解說:加--verbose可以顯示詳細的檢測過程,出錯時會顯示詳細的錯誤資訊
pod lib lint --verbose --allow-warnings
解說: 允許警告,用來解決由于代碼中存在警告導緻不能通過校驗的問題
有時候會提示一個錯誤:
沒有寫簡介,把簡介填寫一下,就可以驗證通過。
有時候會提示一個錯誤:
到這個提示錯誤資訊的時候,使用如下指令:
pod lib lint 檔案名稱.podspec --use-libraries --allow-warnings
相應的執行上傳指令的時候,也需要加上參數:
pod repo push GofSpecs GofKit.podspec --use-libraries --allow-warnings
pod lib lint --sources=[https://git.xxx.com/XesAppMediator...]
解說: 私有庫依賴需要添加specs源來驗證
引用目前私有庫的podFile中指定source為私有庫位址
source http://[privateLibName]/cocoaspecs.git'
source 'https://github.com/CocoaPods/Specs.git'
pod lib lint --help
解說:檢視所有可選參數,可選參數可以加多個
6.送出工程代碼
送出工程代碼到遠端代碼倉庫,可以利用git或者svn進行代碼版本管理,送出代碼到GitHub等, 初始化送出指令如下:
//初始化git版本管理倉庫,模闆代碼已經初始化過此步驟可以忽略(有.git檔案夾)
git init
//添加到暫存區
git add .
//送出到本地倉庫
git commit -a -m '送出資訊'
示例:git commit -a -m '添加pod元件庫'
//打标簽,注意此标簽可能在podspec中用到,用于區分版本
git tag 1.0.0
//本地倉庫與遠端倉庫關聯(已關聯過的,可以忽略)
git remote add origin <url>
//拉取和合并本地與遠端倉庫
git pull origin master --allow-unrelated-histories
//本地倉庫代碼推送到遠端
git push --set-upstream origin master
此時如果你報錯,檢視報錯資訊中如果有:“pre-receive hook declined”
說明存在權限問題,沒有master分支的代碼送出權限。配置設定權限後,就可以push成功。
//推送标簽
git push --tags
7.送出podspec檔案
1. 開源庫送出
podspec檔案到Cocopods官方倉庫,首先在cocopods官方倉庫中新增賬號,指令如下:
pod trunk me
//(檢查是否注冊trunk)
pod trunk register 郵箱 注冊名字 --verbose
//(注冊指令)
注冊完成之後會給你的郵箱發個郵件,進入郵箱郵件裡面有個連結,需要點選确認一下.之後開始送出,切換到有.podspec檔案的元件工程根目錄執行指令
pod trunk push 元件庫名.podspec
pod trunk push 元件庫名.podspec --allow-warnings
2. 私有庫送出
私有倉庫需要先添加到本地倉庫,再push到遠端倉庫。
電腦檢視目錄:~/.cocoapods/repos/
- 添加到本地倉庫, [email protected]/.git為遠端specs庫的位址,成功之後目錄(~/.cocoapods/repos)除了master之外,新增了一個檔案夾(元件庫名)
-
pod repo add specs倉庫名 specs遠端倉庫位址
//示例:pod repo add XesAppMultimedia https://####.com/ /XesAppMultimedia_ spec.git
- 檢視是否添加成功
- pod repo list
- push到遠端specs倉庫
-
pod repo push 本地spec庫名 本地.podsepc檔案
//示例:pod repo push XesAppMultimedia XesAppMultimedia.podspec
- 如果.podspec檔案存在警告時不能成功push。
解決:Pod repo push 本地spec庫名 本地.podsepc檔案 --allow-warnings
示例:pod repo push XesAppMultimedia XesAppMultimedia.podspec --allow-warnings
- 如果已經添加過得,可以不用再添加。
- 如果添加報錯:
删除檔案夾, 重新pod repo add, 重新pod repo push
pod repo add XesAppMultimedia https://####.com/ /XesAppMultimedia_ spec.git
pod repo push specs遠端倉庫位址 元件庫名.podspec
//示例:pod repo push https://##.com/#/XesAppMultimedia_ specs.git XesAppMultimedia.podspec
8、 檢查倉庫是否釋出成功
pod搜尋驗證:
pod search 元件庫名
如果報錯,搜尋不到,建議更新下pod:
pod update
之後仍然搜尋不到,那麼進入CocoaPods緩存目錄,删除緩存索引檔案search_index.json:
cd ~/Library/Caches/CocoaPods
ls
rm -f search_index.json
9、 pod庫檔案引入
如果是開源庫(公有的),修改podfile檔案:
如果是私有倉庫,建議在podfile檔案開頭添加source源:
最後執行指令進行安裝:
pod install