2017-10-31更新-------------------------------
給podspec添加第三方庫(kù)依賴的時(shí)候,需要判斷是否包含了第三方庫(kù)文件拍冠,否則會(huì)報(bào)錯(cuò)尿这,podspec校驗(yàn)不通過,如需要添加第三方庫(kù)依賴為:
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上和電腦本地搭建項(xiàng)目
二妻味、配置.podspec文件
三、上傳本地項(xiàng)目文件到GitHub
四欣福、配置tag并驗(yàn)證podspec文件
五责球、發(fā)布框架
具體過程如下:
一、在GitHub上和電腦本地搭建項(xiàng)目
這一步主要就是把GitHub的項(xiàng)目和本地的項(xiàng)目關(guān)聯(lián)起來
1拓劝、在GitHub上新建一個(gè)項(xiàng)目倉(cāng)庫(kù)(只有LICENSE和README.md兩個(gè)文件)
2雏逾、把GitHub項(xiàng)目clone到電腦本地
3、在該文件目錄下新建項(xiàng)目或者導(dǎo)入已經(jīng)存在的項(xiàng)目郑临,并搭建項(xiàng)目文件結(jié)構(gòu)
4栖博、在該項(xiàng)目目錄下,即LICENSE或者README.md文件的同一級(jí)目錄新建一個(gè)同名的文件夾厢洞,用來存放相關(guān)的文件仇让,也是用于后續(xù)的pod文件路徑
文件目錄結(jié)構(gòu)大致如下(不是固定的,可以參考GitHub上開源框架的文件結(jié)構(gòu)躺翻,如AFNetworking)
- HYTransitionAnimation
- HYTransitionAnimation (用來放置框架文件丧叽,別人pod就是這個(gè)文件下的內(nèi)容)
- HYTransitionAnimationDemo (演示Demo)
- HYTransitionAnimation.podspec (podspec的配置文件)
- LICENSE (證書信息)
- README.md (使用說明)
二、配置.podspec文件
1公你、創(chuàng)建.podspec文件
命令為:pod spec create 項(xiàng)目名稱
如:pod spec create HYTransitionAnimation
2踊淳、編輯.podspec文件,文本編輯工具都可以陕靠,如Sublime
- version 版本信息迂尝,如0.2.1
- summary 摘要脱茉,如HYTransitionAnimation
- description 描述,如a collection of transition animation
- homepage 框架主頁(yè)垄开,一般都是填框架在GitHub的地址琴许,如https://github.com/oceanfive/HYTransitionAnimation
- license 證書類型,如MIT
- platform 平臺(tái)類型溉躲,如ios, "7.0"
- source 來源位置虚吟,如https://github.com/oceanfive/HYTransitionAnimation.git
- source_files 源文件位置,如HYTransitionAnimation/**/*.{h,m}
- frameworks 需要使用的框架签财,如 UIKit
- requires_arc ARC需要串慰,如true
platform
最好指定一下,否則可能會(huì)發(fā)生一些異常的錯(cuò)誤
以上配置內(nèi)容都創(chuàng)建文件的時(shí)候都有唱蒸,我們做的是根據(jù)需要進(jìn)行修改就好了邦鲫;
這里需要著重說一下source_files
填寫的內(nèi)容,本人這里花的時(shí)間最多神汹,這里寫的是相對(duì)文件路徑庆捺,以podspec文件
的作為參考標(biāo)準(zhǔn);建議按照HYTransitionAnimation/**/*.{h,m}
這種格式填寫,意思是添加HYTransitionAnimation文件下包含子目錄的所有.h和m文件屁魏;
三滔以、上傳本地項(xiàng)目文件到GitHub
內(nèi)容和配置文件都完成之后需要上傳到GitHub才行;工具的話可以使用命令行氓拼,也可以使用sourcetree
四你画、配置tag并驗(yàn)證podspec文件
1、設(shè)置tag
命令:git tag "版本號(hào)"
如:git tag "0.2.1"
注意:tag一般和版本號(hào)相同桃漾,我試驗(yàn)結(jié)果是相同可以驗(yàn)證成功坏匪,不同會(huì)一直驗(yàn)證失敗
2、推送到遠(yuǎn)端
git push --tags
3撬统、驗(yàn)證podspec文件
命令:pod spec lint 框架名稱.podspec --verbose
如:pod spec lint HYTransitionAnimation.podspec --verbose
驗(yàn)證的時(shí)候可能會(huì)出現(xiàn)以下錯(cuò)誤适滓,
[!] 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`.
解決:在終端執(zhí)行命令 echo "3.0" > .swift-version
,會(huì)生成一個(gè)文件(這是一個(gè)隱藏文件)
注:錯(cuò)誤解決之后需要重新執(zhí)行步驟三恋追、四凭迹,一直到驗(yàn)證成功才行,驗(yàn)證成功后顯示內(nèi)容如下:
HYTransitionAnimation.podspec passed validation.
五苦囱、發(fā)布框架
1嗅绸、注冊(cè)trunk
命令:pod trunk register 郵箱地址 "用戶名稱" --verbose
如:pod trunk register 123456789@qq.com "one" --verbose
這時(shí)候會(huì)有一封郵件發(fā)送到郵箱地址,需要你去驗(yàn)證才行
2沿彭、發(fā)布
命令:pod trunk push 框架名稱.podspec
如:pod trunk push HYTransitionAnimation.podspec
發(fā)布成功時(shí)終端顯示內(nèi)容如下:
?? Congrats
?? HYTransitionAnimation (0.2.0) successfully published
?? August 30th, 01:25
?? https://cocoapods.org/pods/HYTransitionAnimation
?? Tell your friends!
這時(shí)候就可以在其他項(xiàng)目中使用pod導(dǎo)入了
End-----