手把手教你釋出自己的cocoapods開源庫
釋出自己的cocoapods
開源庫按照以下步驟,良心製作,包教包會!!
下面我會通過一個名為IFMMenu的專案來講解一下整個過程。
1.寫好程式碼,上傳到github
github
上建立專案倉庫的時候記得建立LICENSE
(許可證/授權)檔案,此檔案必須要有。
2.將自己的專案打成tag
因為cocoapods
是依賴tag
版本的,所以必須打tag
,以後再次更新只需要把你的專案打一個tag
,然後修改.podspec
檔案中的版本接著提交到cocoapods
官方就可以了,提交命令請看下面
//為git打tag, 第一次需要在前面加一個v
git tag "v1.0.0"
git push --tags
3.註冊CocoaPods
trunk
需要CocoaPods 0.33
版本以上,用pod --version
命令檢視版本,如果版本低,需要升級。
pod --version
//版本低於0.33
sudo gen install cocoapods
pod setup
已經註冊過的不需要註冊,怎麼看自己有沒有註冊
pod trunk me
若未註冊,執行以下命令,郵箱以及使用者名稱請對號入座。使用者名稱我使用的是Github
上的使用者名稱。
// 加上--verbose可以輸出詳細錯誤資訊,方便出錯時檢視。
pod trunk register example@example.com 'liugangios' --verbose
註冊完成之後會給你的郵箱發個郵件,進入郵箱郵件裡面有個連結,需要點選確認一下。
註冊完成後使用pod trunk me
檢驗註冊是否成功。
4.建立.podspec
cd
到你專案的目錄,執行命令
pod spec create IFMMenu
5.編輯.podspec
建立好後,開啟.podspec
,刪除註釋, 前面有#的為註釋,也可以用以下程式碼替換,然後編輯自己的庫資訊。
Pod::Spec.new do |s|
s.name = 'IFMMenu'
s.version = '1.0.2'
s.authors = { 'liugangios' => 'example@example.com' }
s.homepage = 'https://github.com/liugangios/IFMMenu'
s.summary = 'a dropdown menu for ios like wechat homepage.'
s.source = { :git => 'https://github.com/liugangios/IFMMenu.git',
:tag => s.version.to_s }
s.license = { :type => "MIT", :file => "LICENSE" }
s.platform = :ios, '7.0'
s.requires_arc = true
s.source_files = 'IFMMenu'
s.public_header_files = 'IFMMenu/*.h'
s.ios.deployment_target = '7.0'
end
-
s.name:
名稱,pod search
搜尋的關鍵詞,注意這裡一定要和.podspec的名稱一樣,否則報錯 -
s.version:
版本號,to_s:返回一個字串 -
s.author:
作者 -
s.homepage:
專案主頁地址 -
s.summary:
專案簡介 -
s.source:
專案原始碼所在地址 -
s.license:
許可證 -
s.platform:
專案支援平臺 -
s.requires_arc:
是否支援ARC -
s.source_files:
需要包含的原始檔 -
s.public_header_files:
需要包含的標頭檔案 -
s.ios.deployment_target:
支援的pod最低版本
其他一些非必要欄位
-
s.social_media_url:
社交網址 -
s.resources:
資原始檔 -
s.dependency:
依賴庫,不能依賴未釋出的庫
s.license= { :type => "MIT", :file => "LICENSE" }
這裡建議這樣寫,如果寫別的會報警告,導致後面一直提交失敗。
source_files寫法及含義
"IFMMenu/*
"IFMMenu/IFMMenu/*.{h,m}"
"IFMMenu/**/*.h"
*
表示匹配所有檔案*.{h,m}
表示匹配所有以.h
和.m
結尾的檔案**
表示匹配所有子目錄
s.source常見寫法
s.source = { :git => "https://github.com/liugangios/IFMMenu.git", :commit => "68defea" }
s.source = { :git => "https://github.com/liugangios/IFMMenu.git", :tag => 1.0.0 }
s.source = { :git => "https://github.com/liugangios/IFMMenu.git", :tag => s.version }
-
commit => "68defea"
表示將這個Pod
版本與Git
倉庫中某個commit
繫結 -
tag => 1.0.0
表示將這個Pod
版本與Git
倉庫中某個版本的comit繫結 -
tag => s.version
表示將這個Pod
版本與Git
倉庫中相同版本的comit
繫結
6.驗證.podspec
到此檢查一下你工程中有以下檔案:
- 你的專案,
-
.podspec
檔案, -
LICENSE
檔案
使用以下命令測試本地.podspec
檔案是否存在語法錯誤。
pod spec lint IFMMenu.podspec --verbose
7.釋出
pod trunk push IFMMenu.podspec
時間較長,耐性等待,大概5-10分鐘,釋出成功後會有以下提示
8.測試自己的cocoapods
這個時候使用pod search
搜尋的話會提示搜尋不到,可以執行以下命令更新本地search_index.json
檔案
rm ~/Library/Caches/CocoaPods/search_index.json
然後
pod search IFMMenu
該命令會重新建立search_index.json
檔案,5-10分鐘,耐性等待
完整命令
git tag "v1.0.0"
git push --tags
pod trunk register example@example.com 'liugangios' --verbose
pod trunk me
pod spec create IFMMenu
//編輯 IFMMenu.podspec
pod spec lint IFMMenu.podspec
pod trunk push IFMMenu.podspec
rm ~/Library/Caches/CocoaPods/search_index.json
pod search IFMMenu
報錯處理
[!] Unable to accept duplicate entry for: XXXXX (1.0.0)
意思是:不能接受同一版本的提交
解決方案:
1、執行如下命令
git tag 1.0.1
git push --tags
2、修改XXXX.podspec
檔案中的內容
s.version = "1.0.1"
s.source = { :Git => "https://github.com/xxx/xxx.git", :tag => "1.0.1" }
3、執行命令pod spec lint
、pod trunk push 庫名.podspec
驗證並提交到CocoPods
最後
IFMMenu是一個仿微信首頁新增選單的多功能、多種屬性可自定義的下拉選單,歡迎download
下載提意見,star,感謝閱讀。
下一篇預告:
cocoapods私有倉庫搭建
參考文章:
如何釋出自己的開源框架到CocoaPods
把自己的開源庫新增cocoapods
3分鐘讓你的框架支援cocoapods,podspec檔案講解
iOS:手把手教你釋出程式碼到CocoaPods(Trunk方式)
iOS開發CocoPods支援報錯
相關文章
- 手把手教你釋出自己的 cocoapods 開源庫
- 手把手教你釋出自己的開源庫到 Jcenter
- 手把手教你搭建自己的Angular元件庫Angular元件
- 手把手教你搭建自己的Angular元件庫 - DevUIAngular元件devUI
- 釋出自己的pods到CocoaPods
- 手把手教你搭建自己的Raneto知識庫(二)
- 手把手教你用 Nuget 管理自己的專案庫
- 元件化之CocoaPods釋出私有庫元件化
- 教你一步步釋出一個開源庫到 JCenter
- 使用Jitpack釋出開源Java庫Java
- 將自己的開源專案釋出到 Maven 中央倉庫Maven
- 手把手教你釋出一個Python包Python
- 使用jitPack釋出android開源庫Android
- 手把手教你搭建一個灰度釋出環境
- 手把手教你提交Jar包到Maven公共倉庫 | 萌新寫開源02JARMaven
- Chrome 擴充套件程式的開發與釋出 — 手把手教你開發擴充套件程式Chrome套件
- 手把手教你釋出一個vue元件到npm上Vue元件NPM
- 手把手教你封裝 Vue 元件,並使用 npm 釋出封裝Vue元件NPM
- 手把手教你搭建自己的深度學習機器深度學習
- 開源React Native元件庫beeshell 2.0釋出React Native元件
- 【開源框架】SqlSugarRepository 全庫ORM 正式釋出框架SqlSugarORM
- cego 2.20.12 釋出,開源資料庫Go資料庫
- 手把手教你如何將專案釋出到Maven中央倉庫Maven
- 手把手教你使用 Nginx Ingress 實現金絲雀釋出Nginx
- 手把手教你如何構建一個優秀的開源專案
- 寫給自己看的釋出react靜態資源的方法React
- .NET 開源匯入匯出庫 Magicodes.IE 2.5釋出
- 手把手教你部署自己的私有化客服系統(3)
- 手把手教你部署自己的私有化客服系統(4)
- 手把手教你部署自己的私有化客服系統(2)
- Sun推出自己的開源Java資料庫Java資料庫
- [譯] 當釋出安卓開源庫時我希望知道的東西安卓
- 開源demo| ARCall 小程式開源示例釋出
- 利用公司SVN伺服器使用CocoaPods管理自己的私有庫伺服器
- Meta開源Llama 3釋出
- renren開源專案釋出
- .NET Core開源匯入匯出庫 Magicodes.IE 2.3釋出
- 手把手教你快速搭建React元件庫React元件