2017-10-31更新-------------------------------
給podspec添加第三方庫依賴的時候,需要判斷是否包含了第三方庫文件,否則會報錯,podspec校驗不通過,如需要添加第三方庫依賴為:
s.dependency "HYTool", "~> 0.0.3"
則代碼中需要加入 __has_include 的判斷
#if __has_include(<HYTool/HYPathTool.h>)
#import <HYTool/HYPathTool.h>
#else
#import "HYPathTool.h"
#endif
這篇文章記錄了自己在GitHub上搭建框架podspec過程以及遇到的問題
總的來說可以分為5步驟
一、在GitHub上和電腦本地搭建項目
二、配置.podspec文件
三、上傳本地項目文件到GitHub
四、配置tag并驗證podspec文件
五、發布框架
具體過程如下:
一、在GitHub上和電腦本地搭建項目
這一步主要就是把GitHub的項目和本地的項目關聯起來
1、在GitHub上新建一個項目倉庫(只有LICENSE和README.md兩個文件)
2、把GitHub項目clone到電腦本地
3、在該文件目錄下新建項目或者導入已經存在的項目,并搭建項目文件結構
4、在該項目目錄下,即LICENSE或者README.md文件的同一級目錄新建一個同名的文件夾,用來存放相關的文件,也是用于后續的pod文件路徑
文件目錄結構大致如下(不是固定的,可以參考GitHub上開源框架的文件結構,如AFNetworking)
- HYTransitionAnimation
- HYTransitionAnimation (用來放置框架文件,別人pod就是這個文件下的內容)
- HYTransitionAnimationDemo (演示Demo)
- HYTransitionAnimation.podspec (podspec的配置文件)
- LICENSE (證書信息)
- README.md (使用說明)
二、配置.podspec文件
1、創建.podspec文件
命令為:pod spec create 項目名稱
如:pod spec create HYTransitionAnimation
2、編輯.podspec文件,文本編輯工具都可以,如Sublime
- version 版本信息,如0.2.1
- summary 摘要,如HYTransitionAnimation
- description 描述,如a collection of transition animation
- homepage 框架主頁,一般都是填框架在GitHub的地址,如https://github.com/oceanfive/HYTransitionAnimation
- license 證書類型,如MIT
- platform 平臺類型,如ios, "7.0"
- source 來源位置,如https://github.com/oceanfive/HYTransitionAnimation.git
- source_files 源文件位置,如HYTransitionAnimation/**/*.{h,m}
- frameworks 需要使用的框架,如 UIKit
- requires_arc ARC需要,如true
platform
最好指定一下,否則可能會發生一些異常的錯誤
以上配置內容都創建文件的時候都有,我們做的是根據需要進行修改就好了;
這里需要著重說一下source_files
填寫的內容,本人這里花的時間最多,這里寫的是相對文件路徑,以podspec文件
的作為參考標準;建議按照HYTransitionAnimation/**/*.{h,m}
這種格式填寫,意思是添加HYTransitionAnimation文件下包含子目錄的所有.h和m文件;
三、上傳本地項目文件到GitHub
內容和配置文件都完成之后需要上傳到GitHub才行;工具的話可以使用命令行,也可以使用sourcetree
四、配置tag并驗證podspec文件
1、設置tag
命令:git tag "版本號"
如:git tag "0.2.1"
注意:tag一般和版本號相同,我試驗結果是相同可以驗證成功,不同會一直驗證失敗
2、推送到遠端
git push --tags
3、驗證podspec文件
命令:pod spec lint 框架名稱.podspec --verbose
如:pod spec lint HYTransitionAnimation.podspec --verbose
驗證的時候可能會出現以下錯誤,
[!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run:
`echo "2.3" > .swift-version`.
解決:在終端執行命令 echo "3.0" > .swift-version
,會生成一個文件(這是一個隱藏文件)
注:錯誤解決之后需要重新執行步驟三、四,一直到驗證成功才行,驗證成功后顯示內容如下:
HYTransitionAnimation.podspec passed validation.
五、發布框架
1、注冊trunk
命令:pod trunk register 郵箱地址 "用戶名稱" --verbose
如:pod trunk register 123456789@qq.com "one" --verbose
這時候會有一封郵件發送到郵箱地址,需要你去驗證才行
2、發布
命令:pod trunk push 框架名稱.podspec
如:pod trunk push HYTransitionAnimation.podspec
發布成功時終端顯示內容如下:
?? Congrats
?? HYTransitionAnimation (0.2.0) successfully published
?? August 30th, 01:25
?? https://cocoapods.org/pods/HYTransitionAnimation
?? Tell your friends!
這時候就可以在其他項目中使用pod導入了
End-----