在GitHub上搭建框架podspec過程以及遇到的問題

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-----

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容