向CocoaPods發布代碼

Cocoapods是非常好用的一個iOS依賴管理工具,用它來管理和更新項目中的第三庫使iOS開發更加方便。
使用別人優秀的代碼在程序員開發過程中是非常常見的事,為別人貢獻代碼也是很有必要的事。
這篇文章是我總結向Cocoapods貢獻代碼的過程。我以自己一個非常非常簡單的項目ARFPSStatus來記錄這個過程。ARFPSStatus非常簡單,是Swift寫的在狀態欄顯示屏幕的FPS,源碼只有一個Swift文件。

來吧!??我試著為iOS開發貢獻一點綿薄之力吧。??

一、安裝cocoapods

sudo gem install cocoapods --pre

二、創建代碼并上傳代碼到Github

就是要發布的代碼了,具體怎么上傳代碼到Github上我就不重復了。

三、在github上發布一個版本

點擊這邊的release:


發布一個版本,假設是0.1.0:

創建podspec文件

常見一個<項目名稱>.podspec文件,我這邊就是ARFPSStatus.podspec文件,內容如下:

Pod::Spec.new do |s|
  s.name         = "ARFPSStatus"
  s.version      = "0.1.0"
  s.summary      = "ARFPSStatus - Show FPS Status on StatusBar in Swift"
  s.homepage     = "https://github.com/andyRon/ARFPSStatus"
  s.license      = "MIT"
  s.authors      = { "andyron" => "rongming.2008@163.com" }
  s.source       = { :git => "https://github.com/andyRon/ARFPSStatus.git", :tag => "0.1.0" }
  s.frameworks   = 'Foundation', 'UIKit'
  s.platform     = :ios, '9.0'
  s.source_files = 'ARFPSStatus/*'
  s.requires_arc = true 

end
  1. s.name – 項目名稱,也就是別人使用Pod時使用的名字,需要唯一,可事先在Cocoapods上查詢一下。
  2. s.version – 這是你 Pod 的版本。務必注意,它得和 Github release 的版本號相同,就是剛才發布的版本0.1.0。如果兩者不匹配,就會報錯。
  3. s.summary 和 s.description – 這兩個變量最終會顯示在 Cocoapods 頁面上。請確保 description 比 summary 更長,否則將會報錯。description不是必須的。
  4. s.homepage – 這是 Pod 源代碼的 URL。
  5. s.author – 開發者信息,開發者名字和郵箱。
  6. s.source_files – 這是最重要的參數。不是所有Github項目中所有文件都需要提交到CocoaPods里,項目中可能有一些Demo、圖片啊等,提交到CocoaPods的只需要源碼,就是別人使用時最少所需的代碼。
    例如,我需要提交的是ARFPSStatus/ARFPSStatus.swift文件,s.source_files就是ARFPSStatus/ARFPSStatus.swift,或者之后如果再在ARFPSStatus/目錄中添加其他文件,s.source_files就可以是ARFPSStatus/*
    當然,還可以是其它一些形式。
    ARFPSStatus/*.swift
    ARFPSStatus/*.{swift,plist}

Podspec文件的詳細語法規則可查看官網的Podspec Syntax Reference

驗證項目

CocoaPods 需要驗證項目有沒有錯誤

  • pod lib lint
$ pod lib lint

 -> ARFPSStatus (0.1.0)
    - WARN  | [iOS] license: Unable to find a license file
    - WARN  | xcodebuild:  /Users/andyron/myfield/github/ARFPSStatus/ARFPSStatus/ARFPSStatus.swift:91:17: warning: variable 'label' was never mutated; consider changing to 'let' constant

[!] ARFPSStatus did not pass validation, due to 2 warnings (but you can use `--allow-warnings` to ignore them).
You can use the `--no-clean` option to inspect any issue.

如果想忽略警告,可使用--allow-warnings

  • $ pod lib lint --allow-warnings

發布

  • 創建 Trunk 賬號
    關于Trunk可以查看為什么做 Trunk這篇文章
    創建 Trunk 賬號很簡單,只要一個郵箱。
    pod trunk register rongming.2008@163.com
    郵箱會收到一封確認郵件,確認成功:
  • 推送代碼到Pod
    pod trunk push ARFPSStatus.podspec
    當然也可使用pod trunk push ARFPSStatus.podspec --allow-warnings來忽略一些不必要的警告。
    成功后:
$ pod trunk push ARFPSStatus.podspec 
Updating spec repo `master`

--------------------------------------------------------------------------------
 ??  Congrats

 ??  ARFPSStatus (0.1.0) successfully published
 ??  September 28th, 11:33
 ??  https://cocoapods.org/pods/ARFPSStatus
 ??  Tell your friends!
--------------------------------------------------------------------------------

使用新發布的代碼

發布成功和可能需要一段時間才能使用,可以到Cocoapods上查詢。

  • 項目的Podfile文件中添加ARFPSStatus,并安裝。
target 'FPSDemo' douse dynamic frameworks
  use_frameworks!

  pod "ARFPSStatus" 

end
  • Pods項目會多出ARFPSStatus目錄,里面的Support Files目錄不是我添加的,是Cocoapods自動添加的一些相關文件。

參考:
基于 Swift 創建 CocoaPods 完全指南
Podspec Syntax Reference

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容