iOS開發筆記常用工具之讓自己的工具可以支持CocoaPods

前言

折騰了兩個多小時,踩了幾個坑以后,終于是制作并完成了自己的第一個支持CocoaPods的開源庫了。很簡單的一個小工具,一個簡易的彈窗。這個不是用view加在keyWindow的方式,采用的是控制器的方式,感興趣的可以下載看下。這個不是這次的主題,所以不做說明 ??


創建流程
大致流程:

- 創建一個工程
- 將該工程托管到GitHub
- 創建擴展名為podspec的文件
- 編輯podspec文件
- 校驗
- 發布

聽起來好像是So~~~~~ easy,不過我花了兩個小時搞定(之前也試過,失敗了,后來沒時間就沒弄了)
這次我整理了下大概的坑,后續的步驟講解中會說下這些:

1.托管的時候一定要加上tag
2.幾個必填的關鍵項
3.一定要學會google~

O__O "…廢話太多了,開始正文

一、創建工程并且將代碼托管到GitHub

這個實現方式大家可以根據自己的習慣來,我一般用的是命令的方式寫的;

  • 在GitHub上創建倉庫的流程這個大家搜下就可以
  • 創建完以后 按照箭頭指示獲取鏈接
image.png
  • cd 工程路徑(Tip:在終端里面輸入cd 然后將文件夾拖進來就可以了)
  • 然后執行git remote add origin 獲取的鏈接
  • 一般我會在這里pull一遍git pull origin master
  • git add .
  • git commit -m'文字說明'
  • git tag 'v0.0.1' 這里tag我不知道是不是一定要加v反正我加了就對了 Orz
  • git push --tags
  • git push origin master
    到這兒基本上第一步就完成了,不過最好刷新檢查一下git倉庫頁面。需要注意的是查看一下tag有沒有加上,成功的話會顯示的,如下圖:
image.png

二、創建、配置本地podspec文件

  • 在終端中執行:pod spec create xxx(名字隨便你取啦,一般是你庫的名字)完成以后會在對應的路徑下生成一個擴展名為.podspec的文件
image.png
  • 選擇一個編輯器(我用的sublime)打開,會看到下面的樣子,這里截取了一部分:
image.png

其中主要用到的內容包括


  s.name         = "FKSimpleAlertController"http://名字,一般和podspec文件名保持一致
  s.version      = "0.0.1"http://版本號 這個版本號需要和剛才提交GitHub的tag值一樣,并且不用加上'v'
  s.summary      = "簡易彈窗"http://描述,這個隨便自己怎么寫
  s.description  = "An alertController such as UIAlertController"http://這個隨便,可以不寫
  s.homepage     = "https://github.com/ForAllKid/FKSimpleAlertController"http://項目主頁,一般是GitHub的鏈接地址
  s.license      = "MIT"http://這個~
  s.author       = { "ForKid" => "xxxxxx@qq.com" }//這個一般自動就生成了
  s.platform     = :ios, "8.0"http://支持的平臺和版本,這個一定要填 ??????

  s.source       = { :git => "https://github.com/ForAllKid/FKSimpleAlertController.git", :tag => "v#{s.version}" }//還記得剛才git中copy的地址么?這里要注意下#簽名有個'v'??

  s.source_files  = "FKSimpleAlertControllerDemo/FKSimpleAlertController/Classes/*.{h,m}"http://這里的路徑自己填上去 按照層級寫就行了

//下面的看情況,用了多個framew就是用下面的,一個使用上面的
  # s.framework  = "Foundation"
  s.frameworks = "Foundation", "UIKit"

  s.requires_arc = true//是否支持ARC

踩坑點:

  • 名字沒有保持一致
  • 版本號不一致
  • 發現上面的除了summary和description以外,其他的都是坑 Orz

當然這里是看不出來有沒有錯的~ 接下來這一步可以檢查有沒有錯

  • 終端輸入 pod spec lint xxx.podspec
錯誤情況是這樣:
image.png

恩~ 鮮紅的文字,很強勢!


4C69569513869439AF1B5DF6F43B6900.jpg

其實呢主要看這一行就夠了

image.png

這里是說遠程倉庫沒有對應的tag ~改下就好了,按照之前加tag的步驟
然后重新執行

正確的是這樣:
image.png
3B1951128F2BEA67D584799697DA6CB7.jpg

這里很容易出錯,多查一查就搞定了,實在不行,runloop ~

成功以后就基本完成了,但是你發現你無法pod search。。。
原因嘛,引用下其他人說的:

以上的方法,使用pod search 是搜不到你的庫的,因為這只是你私有的庫而已。
在你本地,前往~/.cocoapods/repos/master/Specs,你會看到cocoapod所有公有的開源庫配置,這個通過cocoapod官方在github的specs來管理,地址為https://github.com/CocoaPods/Specs
說到這里,你會想把這個庫fork分支下來,clone到你本地,把自己的Test.podspec加入,然后add、commit、 push,最后在github上pull request來和官方的主分支合并,可是你會發現請求馬上被自動關閉。

Why!!!

雖然一開始使用GitHub Pull Requests來整理所有公共pods效果很好。但是,隨著Pod數量的增加,這個工作對于spec維護人員Keith Smiley來說變得十分繁雜。甚至一些沒有通過$ pod lint的spec也被提交上來,造成repo無法build。
CocoaPods 0.33中加入了Trunk服務。CocoaPods Trunk服務的引入,解決了很多類似的問題。CocoaPods作為一個集中式的服務,使得分析和統計平臺數據變得十分方便。下面來說說怎么分布CocoaPod。

所以還要搞事情。

  • 要想使用Trunk服務,首先你需要注冊自己的電腦。這很簡單,只要你指明你的郵箱地址(spec文件中的)和名稱即可。
    pod trunk register xxxx@qq.com 'lupeihong' --description='macbook air'

  • 完成之后,我們就可以開始 trunk push 了提交我們的podspec文件。
    pod trunk push Test.podspec

剩下的就是等待了

當完成以后會顯示這個

image.png

然后你可以創建一個工程,然后用pod試試。

完~

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

推薦閱讀更多精彩內容