欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IOS CocoaPods詳解之制作篇

 更新時(shí)間:2016年09月16日 19:08:08   投稿:mdxy-dxy  
學(xué)會(huì)使用別人的Pods依賴(lài)庫(kù)以后,你一定對(duì)創(chuàng)建自己的依賴(lài)庫(kù)躍躍欲試,今天就來(lái)揭開(kāi)Pods依賴(lài)庫(kù)創(chuàng)建過(guò)程的神秘面紗

學(xué)會(huì)使用別人的Pods依賴(lài)庫(kù)以后,你一定對(duì)創(chuàng)建自己的依賴(lài)庫(kù)躍躍欲試,今天就來(lái)揭開(kāi)Pods依賴(lài)庫(kù)創(chuàng)建過(guò)程的神秘面紗。整個(gè)創(chuàng)建過(guò)程都以我實(shí)現(xiàn)的一個(gè)名稱(chēng)為WZMarqueeView跑馬燈效果的view為例,步驟如下:

一、創(chuàng)建自己的github倉(cāng)庫(kù)

CocoaPods都托管在github上(官方鏈接為:https://github.com/CocoaPods),所有的Pods依賴(lài)庫(kù)也都依賴(lài)github,因此第一步我們需要?jiǎng)?chuàng)建一個(gè)屬于自己的github倉(cāng)庫(kù)。倉(cāng)庫(kù)創(chuàng)建界面如下圖:


上圖中標(biāo)了序號(hào)的共6處,對(duì)應(yīng)的說(shuō)明如下:

1、Repository name

倉(cāng)庫(kù)名稱(chēng),這里寫(xiě)成WZMarqueeView,必填的;

2、Description

倉(cāng)庫(kù)的描述信息,可選的;

3、倉(cāng)庫(kù)的公開(kāi)性

這里只能選Public,一個(gè)是因?yàn)镻rivate是要money的,再一個(gè)Private別人看不到還共享個(gè)毛;

4、是否創(chuàng)建一個(gè)默認(rèn)的README文件

一個(gè)完整地倉(cāng)庫(kù),都需要README說(shuō)明文檔,建議選上。當(dāng)然不嫌麻煩的話你也可以后面再手動(dòng)創(chuàng)建一個(gè);

5、是否添加.gitignore文件

.gitignore文件里面記錄了若干中文件類(lèi)型,凡是該文件包含的文件類(lèi)型,git都不會(huì)將其納入到版本管理中。是否選擇看個(gè)人需要;

6、license類(lèi)型

正規(guī)的倉(cāng)庫(kù)都應(yīng)該有一個(gè)license文件,Pods依賴(lài)庫(kù)對(duì)這個(gè)文件的要求更嚴(yán),是必須要有的。因此最好在這里讓github創(chuàng)建一個(gè),也可以自己后續(xù)再創(chuàng)建。我使用的license類(lèi)型是MIT。

上面的各項(xiàng)都填寫(xiě)完畢后,點(diǎn)擊Create repository按鈕即可,創(chuàng)建成功地界面如圖:


到這,倉(cāng)庫(kù)創(chuàng)建過(guò)程就結(jié)束了。

二、clone倉(cāng)庫(kù)到本地
為了便于向倉(cāng)庫(kù)中刪減內(nèi)容,需要先將倉(cāng)庫(kù)clone到本地,操作方式有多種,推薦使用命令行:

$ git clone https://github.com/wangzz/WZMarqueeView.git

操作完成后,github上對(duì)應(yīng)的文件都會(huì)拷貝到本地,目錄結(jié)構(gòu)為:

github上倉(cāng)庫(kù)中的.gitignore文件是以.開(kāi)頭的隱藏文件,因此這里只能看到兩個(gè)。
后續(xù)我們的所有文件增、刪、改都在這個(gè)目錄下進(jìn)行。

三、向本地git倉(cāng)庫(kù)中添加創(chuàng)建Pods依賴(lài)庫(kù)所需文件

注意:以下描述的文件都要放在步驟二clone到本地的git倉(cāng)庫(kù)的根目錄下面。
1、后綴為.podspec文件
該文件為Pods依賴(lài)庫(kù)的描述文件,每個(gè)Pods依賴(lài)庫(kù)必須有且僅有那么一個(gè)描述文件。文件名稱(chēng)要和我們想創(chuàng)建的依賴(lài)庫(kù)名稱(chēng)保持一致,我的WZMarqueeView依賴(lài)庫(kù)對(duì)應(yīng)的文件名為WZMarqueeView.podspec。
1.1 podspec文件內(nèi)容

WZMarqueeView.podspec的保存內(nèi)容為:

Pod::Spec.new do |s|
 s.name       = "WZMarqueeView"
 s.version     = "1.0.0"
 s.summary     = "A marquee view used on iOS."
 s.description   = <<-DESC
            It is a marquee view used on iOS, which implement by Objective-C.
            DESC
 s.homepage     = "https://github.com/wangzz/WZMarqueeView"
 # s.screenshots   = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
 s.license     = 'MIT'
 s.author      = { "王中周" => "wzzvictory_tjsd@163.com" }
 s.source      = { :git => "https://github.com/wangzz/WZMarqueeView.git", :tag => s.version.to_s }
 # s.social_media_url = 'https://twitter.com/NAME'

 s.platform   = :ios, '4.3'
 # s.ios.deployment_target = '5.0'
 # s.osx.deployment_target = '10.7'
 s.requires_arc = true

 s.source_files = 'WZMarqueeView/*'
 # s.resources = 'Assets'

 # s.ios.exclude_files = 'Classes/osx'
 # s.osx.exclude_files = 'Classes/ios'
 # s.public_header_files = 'Classes/**/*.h'
 s.frameworks = 'Foundation', 'CoreGraphics', 'UIKit'

end

該文件是ruby文件,里面的條目都很容易知道含義。
其中需要說(shuō)明的又幾個(gè)參數(shù):
①s.license
Pods依賴(lài)庫(kù)使用的license類(lèi)型,大家填上自己對(duì)應(yīng)的選擇即可。
②s.source_files
表示源文件的路徑,注意這個(gè)路徑是相對(duì)podspec文件而言的。
③s.frameworks
需要用到的frameworks,不需要加.frameworks后綴。

1.2 如何創(chuàng)建podspec文件

大家創(chuàng)建自己的podspec文件可以有兩個(gè)途徑:
①copy我的podspec文件然后修改對(duì)應(yīng)的參數(shù),推薦使用這種方式。
②執(zhí)行以下創(chuàng)建命令:

$ pod spec create WZMarqueeView

也會(huì)創(chuàng)建名為WZMarqueeView.podspec的文件。但是打開(kāi)創(chuàng)建完的文件你就會(huì)發(fā)現(xiàn)里面的東西太多了,很多都是我們不需要的。

2、LICENSE文件
CocoaPods強(qiáng)制要求所有的Pods依賴(lài)庫(kù)都必須有l(wèi)icense文件,否則驗(yàn)證不會(huì)通過(guò)。license的類(lèi)型有很多種,詳情可以參考網(wǎng)站tl;dr Legal。在創(chuàng)建github倉(cāng)庫(kù)的時(shí)候,我已經(jīng)選擇了MIT類(lèi)型的license。

3、主類(lèi)文件
創(chuàng)建Pods依賴(lài)庫(kù)就是為了方便別人使用我們的成果,比如我想共享給大家的WZMarqueeView類(lèi),是我想提供給廣大用戶使用的,這個(gè)類(lèi)自然是必不可少的。我把這個(gè)類(lèi)包含的兩個(gè)文件放到一個(gè)名稱(chēng)為WZMarqueeView的文件夾中,對(duì)應(yīng)的目錄結(jié)構(gòu)如圖:

里面包含兩個(gè)文件:WZMarqueeView.h和WZMarqueeView.m

4、demo工程
為了快速地教會(huì)別人使用我們的Pods依賴(lài)庫(kù),通常需要提供一個(gè)demo工程。我創(chuàng)建的demo工程放到了一個(gè)名為WZMarqueeViewDemo的文件夾中,該目錄包含的文件如下圖所示:

5、README.md
使用github的人應(yīng)該都熟悉這個(gè)文件,它是一個(gè)成功github倉(cāng)庫(kù)必不可少的一部分,使用的是markdown標(biāo)記語(yǔ)言,用于對(duì)倉(cāng)庫(kù)的詳細(xì)說(shuō)明。

以上所說(shuō)的5個(gè)是創(chuàng)建Pods依賴(lài)庫(kù)所需最基礎(chǔ)的文件,其中1、2、3是必需的,4、5是可選但強(qiáng)烈推薦創(chuàng)建的。
添加完這些文件以后,我的github本地倉(cāng)庫(kù)目錄就變成了下圖所示的樣子:

四、提交修改文件到github
經(jīng)過(guò)步驟三,向本地的git倉(cāng)庫(kù)中添加了不少文件,現(xiàn)在需要將它們提交到github倉(cāng)庫(kù)中去。提交過(guò)程分以下幾步:
1、pod驗(yàn)證
執(zhí)行以下命令:

$ set the new version to 1.0.0
$ set the new tag to 1.0.0

這兩條命令是為pod添加版本號(hào)并打上tag。然后執(zhí)行pod驗(yàn)證命令:

$ pod lib lint

如果一切正常,這條命令執(zhí)行完后會(huì)出現(xiàn)下面的輸出:

 -> WZMarqueeView (1.0.0)

WZMarqueeView passed validation.

到此,pod驗(yàn)證就結(jié)束了。
需要說(shuō)明的是,在執(zhí)行pod驗(yàn)證命令的時(shí)候,打印出了任何warning或者error信息,驗(yàn)證都會(huì)失??!如果驗(yàn)證出現(xiàn)異常,打印的信息會(huì)很詳細(xì),大家可以根據(jù)對(duì)應(yīng)提示做出修改。

2、本地git倉(cāng)庫(kù)修改內(nèi)容上傳到github倉(cāng)庫(kù)
依次執(zhí)行以下命令:

$ git add -A && git commit -m "Release 1.0.0."
$ git tag '1.0.0'
$ git push --tags
$ git push origin master

上述命令均屬git的范疇,這里不多述。如果一切正常,github上就應(yīng)該能看到自己剛添加的內(nèi)容了。如下圖所示:

五、上傳podspec文件到CocoaPods官方倉(cāng)庫(kù)中
經(jīng)過(guò)前邊的四步操作,你可能以為已經(jīng)結(jié)束了,不幸的是還早著呢。

要想一個(gè)Pods依賴(lài)庫(kù)真正可用,還需要做最后一步操作,將我們剛才生成的podspec文件上傳到CocoaPods官方的Specs倉(cāng)庫(kù)中,鏈接為:https://github.com/CocoaPods/Specs

打開(kāi)這個(gè)鏈接你就會(huì)發(fā)現(xiàn),原來(lái)我們能使用的,以及我們使用pod search命令能搜索到的所有Pods依賴(lài)庫(kù)都會(huì)把它們的podspec文件上傳到這個(gè)倉(cāng)庫(kù)中,也就是說(shuō),只有將我們的podspec文件上傳到這個(gè)倉(cāng)庫(kù)中以后,才能成為一個(gè)真正的Pods依賴(lài)庫(kù),別人才能正常使用!

按照git的規(guī)則,要想向別人的倉(cāng)庫(kù)中添加文件,必須先f(wàn)ork一份別人的倉(cāng)庫(kù),做完相應(yīng)地修改后,在push給倉(cāng)庫(kù)的原作者,等到作者審核通過(guò),然后合并到原來(lái)的倉(cāng)庫(kù)中。

流程明白了以后,自然知道該怎么干了:
1、fork一份CocoaPods官方的Specs倉(cāng)庫(kù)
進(jìn)入到剛才的官方倉(cāng)庫(kù)鏈接中,點(diǎn)擊屏幕右上角的fork按鈕,如下圖:



然后大家會(huì)發(fā)現(xiàn)自己名下會(huì)多一份倉(cāng)庫(kù)的分支。比如我的分支為:

2、將fork的倉(cāng)庫(kù)clone到本地
執(zhí)行以下命令:

$ git clone https://github.com/wangzz/Specs.git

注意,大家需要將對(duì)應(yīng)的倉(cāng)庫(kù)地址換成自己的。
這個(gè)倉(cāng)庫(kù)有點(diǎn)大,需要有耐心啊。

3、將自己的podspec文件添加到本地Specs倉(cāng)庫(kù)中
Specs倉(cāng)庫(kù)clone到本地后,會(huì)放到一個(gè)名為Specs的文件夾中。podspec文件在Specs倉(cāng)庫(kù)中的保存原則是:
Pods依賴(lài)庫(kù)同名文件夾--->版本號(hào)同名文件夾--->podspec文件
照此原則,我需要在Specs文件夾下建立一個(gè)名為WZMarqueeView的文件夾,然后進(jìn)入到WZMarqueeView文件夾下,建立一個(gè)名稱(chēng)為1.0.0的文件夾,最后進(jìn)入到1.0.0這個(gè)文件夾下,并且將之前創(chuàng)建好的WZMarqueeView.podspec文件拷貝進(jìn)來(lái)。
不難理解,如果以后有對(duì)WZMarqueeView類(lèi)的升級(jí),就在WZMarqueeView文件夾下建立對(duì)應(yīng)版本名稱(chēng)的文件夾,用于保存對(duì)應(yīng)版本的podspec文件即可。
這些操作完成后,目錄層次結(jié)構(gòu)如下所示:

4、上傳本地Specs倉(cāng)庫(kù)中的修改到github倉(cāng)庫(kù)
執(zhí)行以下命令:

$ git add -A && git commit -m "Add WZMarqueeView podspec file"
$ git push origin master

成功以后就能在github上自己fork的Specs倉(cāng)庫(kù)中看到剛上傳的文件了。

5、將在自己fork的Specs上做的修改pull給CocoaPods官方的Specs倉(cāng)庫(kù)
進(jìn)入到自己fork的Specs倉(cāng)庫(kù)中,會(huì)看到屏幕左上角有一個(gè)綠色按鈕:


該按鈕點(diǎn)進(jìn)去以后會(huì)有如下圖所示的界面:

點(diǎn)擊圖中的綠色Create Pull Request按鈕,即可將我們fork的Specs上做的修改pull給CocoaPods官方的Specs倉(cāng)庫(kù)。

到這一步后,剩下的工作就只有等了,等待CocoaPods的維護(hù)人員審核并將我們pull上去的修改合并到官方的Specs倉(cāng)庫(kù)中,這個(gè)過(guò)程通常會(huì)有一天左右的等待時(shí)間。如果有任何消息,比如審核不通過(guò),或者審核通過(guò)了,CocoaPods官方都會(huì)發(fā)郵件通知的。
等到審核通過(guò)的時(shí)候,我們就能在官方的Specs倉(cāng)庫(kù)中看到自己上傳的文件夾了。

6、查看審核進(jìn)度
當(dāng)然我們也能查看審核進(jìn)度,打開(kāi)這個(gè)鏈接:https://github.com/CocoaPods/Specs/pulls,這里能看到所有的Specs倉(cāng)庫(kù)pull請(qǐng)求,如下圖:

紅圈標(biāo)識(shí)的就是我剛才pull上來(lái)的請(qǐng)求,點(diǎn)進(jìn)去以后就能看到對(duì)應(yīng)的審核進(jìn)度。

六、查看我們自己創(chuàng)建的Pods依賴(lài)庫(kù)
如果收到了CocoaPods官方發(fā)過(guò)來(lái)的審核通過(guò)郵件以后,你可能很著急的想在自己的電腦上執(zhí)行pod search命令,看看能不能搜索到自己創(chuàng)建的Pods依賴(lài)庫(kù)。不過(guò)你肯定會(huì)失望的,因?yàn)檫€需要執(zhí)行一條命令才能在我們的本地電腦上使用search命令搜索到我們的依賴(lài)庫(kù):

$ pod setup

在我的CocoaPods系列教程中的第一篇:CocoaPods詳解之----進(jìn)階篇中的最后部分介紹過(guò)這條命令,它會(huì)將所有的Pods依賴(lài)庫(kù)tree跟新到本地。執(zhí)行完這條命令,再去執(zhí)行:

$ pod search WZMarqueeView

就能顯示出對(duì)應(yīng)的介紹信息了!

說(shuō)了那么多,到這里整個(gè)Pods依賴(lài)庫(kù)創(chuàng)建過(guò)程才算真正結(jié)束!小伙伴們,你成功了嗎???遇到問(wèn)題還請(qǐng)留言。

七、參考文檔

1、http://guides.cocoapods.org

相關(guān)文章

  • 詳解iOS 計(jì)步器的幾種實(shí)現(xiàn)方式

    詳解iOS 計(jì)步器的幾種實(shí)現(xiàn)方式

    本篇文章主要介紹了詳解iOS 計(jì)步器的幾種實(shí)現(xiàn)方式,詳細(xì)的介紹了兩種可以獲取計(jì)步數(shù)據(jù)的方法,有興趣的可以了解一下
    2017-08-08
  • iOS10實(shí)現(xiàn)推送功能時(shí)的注意點(diǎn)和問(wèn)題總結(jié)

    iOS10實(shí)現(xiàn)推送功能時(shí)的注意點(diǎn)和問(wèn)題總結(jié)

    很多朋友都反饋,發(fā)現(xiàn)了iOS9升級(jí)到iOS10推送功能不正常的問(wèn)題,所以這篇文章總結(jié)了一下要點(diǎn),親們可以根據(jù)以下步驟,逐步排查問(wèn)題,也可以逐步實(shí)現(xiàn)iOS10的推送功能。下面來(lái)一起看看吧。
    2016-09-09
  • iOS手勢(shì)的實(shí)現(xiàn)方法

    iOS手勢(shì)的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了iOS手勢(shì)的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 舉例講解iOS應(yīng)用開(kāi)發(fā)中hitTest觸摸事件的編寫(xiě)方法

    舉例講解iOS應(yīng)用開(kāi)發(fā)中hitTest觸摸事件的編寫(xiě)方法

    這篇文章主要介紹了舉例講解iOS應(yīng)用開(kāi)發(fā)中hitTest觸摸事件的編寫(xiě)方法,重點(diǎn)講解了兩個(gè)view之間的事件傳遞,需要的朋友可以參考下
    2016-04-04
  • iOS Xcode自定義代碼塊及遷移的實(shí)現(xiàn)方法

    iOS Xcode自定義代碼塊及遷移的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于iOS Xcode自定義代碼塊及遷移的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用iOS Xcode具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • iOS實(shí)現(xiàn)Pad上菜單彈出界面

    iOS實(shí)現(xiàn)Pad上菜單彈出界面

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)Pad上菜單彈出界面的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • iOS微信分享配置universal?links步驟解析

    iOS微信分享配置universal?links步驟解析

    這篇文章主要為大家介紹了iOS微信分享配置universal?links步驟詳細(xì)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 詳解ios中scrollView上使用masonry

    詳解ios中scrollView上使用masonry

    本篇文章主要給大家詳細(xì)分析了ios開(kāi)發(fā)中scrollView上使用masonry的詳細(xì)知識(shí)內(nèi)容,需要的朋友參考下吧。
    2018-02-02
  • iOS AVCaptureSession實(shí)現(xiàn)視頻錄制功能

    iOS AVCaptureSession實(shí)現(xiàn)視頻錄制功能

    這篇文章主要為大家詳細(xì)介紹了iOS AVCaptureSession實(shí)現(xiàn)視頻錄制功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • IOS中無(wú)限滾動(dòng)Scrollview效果

    IOS中無(wú)限滾動(dòng)Scrollview效果

    這篇文章主要為大家詳細(xì)介紹了IOS中無(wú)限滾動(dòng)Scrollview效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-02-02

最新評(píng)論