IOS-CocoaPods製做篇

做者: wangzz
轉載請註明出處
若是以爲文章對你有所幫助,請經過留言或關注微信公衆賬號wangzzstrive來支持我,謝謝!
 
學會使用別人的Pods依賴庫之後,你必定對建立本身的依賴庫躍躍欲試,今天就來揭開Pods依賴庫建立過程的神祕面紗。整個建立過程都以我實現的一個名稱爲WZMarqueeView跑馬燈效果的view爲例,步驟以下:

1、建立本身的github倉庫

CocoaPods都託管在github上(官方連接爲: https://github.com/CocoaPods),全部的Pods依賴庫也都依賴github,所以第一步咱們須要建立一個屬於本身的github倉庫。倉庫建立界面以下圖:
上圖中標了序號的共6處,對應的說明以下:
一、Repository name
倉庫名稱,這裏寫成WZMarqueeView,必填的;
二、Description
倉庫的描述信息,可選的;
三、倉庫的公開性
這裏只能選Public,一個是由於Private是要money的,再一個Private別人看不到還共享個毛;
四、是否建立一個默認的README文件
一個完整地倉庫,都須要README說明文檔,建議選上。固然不嫌麻煩的話你也能夠後面再手動建立一個;
五、是否添加.gitignore文件
.gitignore文件裏面記錄了若干中文件類型,凡是該文件包含的文件類型,git都不會將其歸入到版本管理中。是否選擇看我的須要;
六、license類型
正規的倉庫都應該有一個license文件,Pods依賴庫對這個文件的要求更嚴,是必需要有的。所以最好在這裏讓github建立一個,也能夠本身後續再建立。我使用的license類型是MIT。
 
上面的各項都填寫完畢後,點擊Create repository按鈕便可,建立成功地界面如圖:
到這,倉庫建立過程就結束了。
 

2、clone倉庫到本地

爲了便於向倉庫中刪減內容,須要先將倉庫clone到本地,操做方式有多種,推薦使用命令行:
[objc]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. $ git clone https://github.com/wangzz/WZMarqueeView.git  
操做完成後,github上對應的文件都會拷貝到本地,目錄結構爲:
github上倉庫中的.gitignore文件是以.開頭的隱藏文件,所以這裏只能看到兩個。
後續咱們的全部文件增、刪、改都在這個目錄下進行。
 

3、向本地git倉庫中添加建立Pods依賴庫所需文件

注意:如下描述的文件都要放在步驟二clone到本地的git倉庫的根目錄下面。

一、後綴爲.podspec文件

該文件爲Pods依賴庫的描述文件,每一個Pods依賴庫必須有且僅有那麼一個描述文件。文件名稱要和咱們想建立的依賴庫名稱保持一致,個人WZMarqueeView依賴庫對應的文件名爲WZMarqueeView.podspec。

1.1 podspec文件內容ios

WZMarqueeView.podspec的保存內容爲:
[ruby]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. Pod::Spec.new do |s|  
  2.   s.name             = "WZMarqueeView"  
  3.   s.version          = "1.0.0"  
  4.   s.summary          = "A marquee view used on iOS."  
  5.   s.description      = <<-DESC  
  6.                        It is a marquee view used on iOS, which implement by Objective-C.  
  7.                        DESC  
  8.   s.homepage         = "https://github.com/wangzz/WZMarqueeView"  
  9.   # s.screenshots      = "www.example.com/screenshots_1", "www.example.com/screenshots_2"  
  10.   s.license          = 'MIT'  
  11.   s.author           = { "王中周" => "wzzvictory_tjsd@163.com" }  
  12.   s.source           = { :git => "https://github.com/wangzz/WZMarqueeView.git", :tag => s.version.to_s }  
  13.   # s.social_media_url = 'https://twitter.com/NAME'  
  14.   
  15.   s.platform     = :ios, '4.3'  
  16.   # s.ios.deployment_target = '5.0'  
  17.   # s.osx.deployment_target = '10.7'  
  18.   s.requires_arc = true  
  19.   
  20.   s.source_files = 'WZMarqueeView/*'  
  21.   # s.resources = 'Assets'  
  22.   
  23.   # s.ios.exclude_files = 'Classes/osx'  
  24.   # s.osx.exclude_files = 'Classes/ios'  
  25.   # s.public_header_files = 'Classes/**/*.h'  
  26.   s.frameworks = 'Foundation', 'CoreGraphics', 'UIKit'  
  27.   
  28. end  
該文件是ruby文件,裏面的條目都很容易知道含義。
其中須要說明的又幾個參數:
①s.license
Pods依賴庫使用的license類型,你們填上本身對應的選擇便可。
②s.source_files
表示源文件的路徑,注意這個路徑是相對podspec文件而言的。
③s.frameworks
須要用到的frameworks,不須要加.frameworks後綴。
 

1.2 如何建立podspec文件git

你們建立本身的podspec文件能夠有兩個途徑:
①copy個人podspec文件而後修改對應的參數,推薦使用這種方式。
②執行如下建立命令:
[ruby]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. $ pod spec create WZMarqueeView  
也會建立名爲WZMarqueeView.podspec的文件。可是打開建立完的文件你就會發現裏面的東西太多了,不少都是咱們不須要的。
 

二、LICENSE文件

CocoaPods強制要求全部的Pods依賴庫都必須有license文件,不然驗證不會經過。license的類型有不少種,詳情能夠參考網站 tl;dr Legal。在建立github倉庫的時候,我已經選擇了MIT類型的license。
 

三、主類文件

建立Pods依賴庫就是爲了方便別人使用咱們的成果,好比我想共享給你們的WZMarqueeView類,是我想提供給廣大用戶使用的,這個類天然是必不可少的。我把這個類包含的兩個文件放到一個名稱爲WZMarqueeView的文件夾中,對應的目錄結構如圖:
裏面包含兩個文件:WZMarqueeView.h和WZMarqueeView.m
 

四、demo工程

爲了快速地教會別人使用咱們的Pods依賴庫,一般須要提供一個demo工程。我建立的demo工程放到了一個名爲WZMarqueeViewDemo的文件夾中,該目錄包含的文件以下圖所示:
 

五、README.md

使用github的人應該都熟悉這個文件,它是一個成功github倉庫必不可少的一部分,使用的是markdown標記語言,用於對倉庫的詳細說明。
 
以上所說的5個是建立Pods依賴庫所需最基礎的文件,其中一、二、3是必需的,四、5是可選但強烈推薦建立的。
添加完這些文件之後,個人github本地倉庫目錄就變成了下圖所示的樣子:
 

4、提交修改文件到github

通過步驟三,向本地的git倉庫中添加了很多文件,如今須要將它們提交到github倉庫中去。提交過程分如下幾步:

一、pod驗證

執行如下命令:
[ruby]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. $ set the new version to 1.0.0  
  2. $ set the new tag to 1.0.0  
這兩條命令是爲pod添加版本號並打上tag。而後執行pod驗證命令:
[ruby]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. $ pod lib lint  
若是一切正常,這條命令執行完後會出現下面的輸出:
[ruby]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. -> WZMarqueeView (1.0.0)  
  2.   
  3. ZMarqueeView passed validation.  
到此,pod驗證就結束了。
須要說明的是,在執行pod驗證命令的時候,打印出了任何warning或者error信息,驗證都會失敗!若是驗證出現異常,打印的信息會很詳細,你們能夠根據對應提示作出修改。

二、本地git倉庫修改內容上傳到github倉庫

依次執行如下命令:
[ruby]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. $ git add -A && git commit -m "Release 1.0.0."  
  2. $ git tag '1.0.0'  
  3. $ git push --tags  
  4. $ git push origin master  
上述命令均屬git的範疇,這裏很少述。若是一切正常,github上就應該能看到本身剛添加的內容了。以下圖所示:
 
 

5、上傳podspec文件到CocoaPods官方倉庫中

通過前邊的四步操做,你可能覺得已經結束了,不幸的是還早着呢。
要想一個Pods依賴庫真正可用,還須要作最後一步操做,將咱們剛纔生成的podspec文件上傳到CocoaPods官方的Specs倉庫中,連接爲: https://github.com/CocoaPods/Specs
打開這個連接你就會發現,原來咱們能使用的,以及咱們使用pod search命令能搜索到的全部Pods依賴庫都會把它們的podspec文件上傳到這個倉庫中,也就是說,只有將咱們的podspec文件上傳到這個倉庫中之後,才能成爲一個真正的Pods依賴庫,別人才能正常使用!
按照git的規則,要想向別人的倉庫中添加文件,必須先fork一份別人的倉庫,作完相應地修改後,在push給倉庫的原做者,等到做者審覈經過,而後合併到原來的倉庫中。
流程明白了之後,天然知道該怎麼幹了:

一、fork一份CocoaPods官方的Specs倉庫

進入到剛纔的官方倉庫連接中,點擊屏幕右上角的fork按鈕,以下圖:
 
而後你們會發現本身名下會多一份倉庫的分支。好比個人分支爲:
 

二、將fork的倉庫clone到本地

執行如下命令:
[ruby]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. $ git clone https://github.com/wangzz/Specs.git  
注意,你們須要將對應的倉庫地址換成本身的。
這個倉庫有點大,須要有耐心啊。
 

三、將本身的podspec文件添加到本地Specs倉庫中

Specs倉庫clone到本地後,會放到一個名爲Specs的文件夾中。podspec文件在Specs倉庫中的保存原則是:
Pods依賴庫同名文件夾--->版本號同名文件夾--->podspec文件
照此原則,我須要在Specs文件夾下創建一個名爲WZMarqueeView的文件夾,而後進入到WZMarqueeView文件夾下,創建一個名稱爲1.0.0的文件夾,最後進入到1.0.0這個文件夾下,而且將以前建立好的WZMarqueeView.podspec文件拷貝進來。
不難理解,若是之後有對WZMarqueeView類的升級,就在WZMarqueeView文件夾下創建對應版本名稱的文件夾,用於保存對應版本的podspec文件便可。
這些操做完成後,目錄層次結構以下所示:
 

四、上傳本地Specs倉庫中的修改到github倉庫

執行如下命令:
[ruby]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. $ git add -A && git commit -m "Add WZMarqueeView podspec file"  
  2. $ git push origin master  
成功之後就能在github上本身fork的Specs倉庫中看到剛上傳的文件了。
 

五、將在本身fork的Specs上作的修改pull給CocoaPods官方的Specs倉庫

進入到本身fork的Specs倉庫中,會看到屏幕左上角有一個綠色按鈕:
該按鈕點進去之後會有以下圖所示的界面:
點擊圖中的綠色Create Pull Request按鈕,便可將咱們fork的Specs上作的修改pull給CocoaPods官方的Specs倉庫。
 
到這一步後,剩下的工做就只有等了,等待CocoaPods的維護人員審覈並將咱們pull上去的修改合併到官方的Specs倉庫中,這個過程一般會有一天左右的等待時間。若是有任何消息,好比審覈不經過,或者審覈經過了,CocoaPods官方都會發郵件通知的。
等到審覈經過的時候,咱們就能在官方的Specs倉庫中看到本身上傳的文件夾了。
 

六、查看審覈進度

固然咱們也能查看審覈進度,打開這個連接: https://github.com/CocoaPods/Specs/pulls,這裏能看到全部的Specs倉庫pull請求,以下圖:
紅圈標識的就是我剛纔pull上來的請求,點進去之後就能看到對應的審覈進度。
 

6、查看咱們本身建立的Pods依賴庫

若是收到了CocoaPods官方發過來的審覈經過郵件之後,你可能很着急的想在本身的電腦上執行pod search命令,看看能不能搜索到本身建立的Pods依賴庫。不過你確定會失望的,由於還須要執行一條命令才能在咱們的本地電腦上使用search命令搜索到咱們的依賴庫:
[ruby]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. $ pod setup  
在個人CocoaPods系列教程中的第一篇: CocoaPods詳解之----進階篇中的最後部分介紹過這條命令,它會將全部的Pods依賴庫tree跟新到本地。執行完這條命令,再去執行:
[ruby]  view plain  copy
 在CODE上查看代碼片派生到個人代碼片
  1. $ pod search WZMarqueeView  
就能顯示出對應的介紹信息了!
 
說了那麼多,到這裏整個Pods依賴庫建立過程纔算真正結束!小夥伴們,你成功了嗎???遇到問題還請留言。
 

7、參考文檔

相關文章
相關標籤/搜索