亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

IOS CocoaPods詳解之制作篇

2020-07-26 03:14:16
字體:
來源:轉載
供稿:網友

學會使用別人的Pods依賴庫以后,你一定對創建自己的依賴庫躍躍欲試,今天就來揭開Pods依賴庫創建過程的神秘面紗。整個創建過程都以我實現的一個名稱為WZMarqueeView跑馬燈效果的view為例,步驟如下:

一、創建自己的github倉庫

CocoaPods都托管在github上(官方鏈接為:https://github.com/CocoaPods),所有的Pods依賴庫也都依賴github,因此第一步我們需要創建一個屬于自己的github倉庫。倉庫創建界面如下圖:


上圖中標了序號的共6處,對應的說明如下:

1、Repository name

倉庫名稱,這里寫成WZMarqueeView,必填的;

2、Description

倉庫的描述信息,可選的;

3、倉庫的公開性

這里只能選Public,一個是因為Private是要money的,再一個Private別人看不到還共享個毛;

4、是否創建一個默認的README文件

一個完整地倉庫,都需要README說明文檔,建議選上。當然不嫌麻煩的話你也可以后面再手動創建一個;

5、是否添加.gitignore文件

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

6、license類型

正規的倉庫都應該有一個license文件,Pods依賴庫對這個文件的要求更嚴,是必須要有的。因此最好在這里讓github創建一個,也可以自己后續再創建。我使用的license類型是MIT。

上面的各項都填寫完畢后,點擊Create repository按鈕即可,創建成功地界面如圖:


到這,倉庫創建過程就結束了。

二、clone倉庫到本地
為了便于向倉庫中刪減內容,需要先將倉庫clone到本地,操作方式有多種,推薦使用命令行:

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

操作完成后,github上對應的文件都會拷貝到本地,目錄結構為:

github上倉庫中的.gitignore文件是以.開頭的隱藏文件,因此這里只能看到兩個。
后續我們的所有文件增、刪、改都在這個目錄下進行。

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

注意:以下描述的文件都要放在步驟二clone到本地的git倉庫的根目錄下面。
1、后綴為.podspec文件
該文件為Pods依賴庫的描述文件,每個Pods依賴庫必須有且僅有那么一個描述文件。文件名稱要和我們想創建的依賴庫名稱保持一致,我的WZMarqueeView依賴庫對應的文件名為WZMarqueeView.podspec。
1.1 podspec文件內容

WZMarqueeView.podspec的保存內容為:

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文件,里面的條目都很容易知道含義。
其中需要說明的又幾個參數:
①s.license
Pods依賴庫使用的license類型,大家填上自己對應的選擇即可。
②s.source_files
表示源文件的路徑,注意這個路徑是相對podspec文件而言的。
③s.frameworks
需要用到的frameworks,不需要加.frameworks后綴。

1.2 如何創建podspec文件

大家創建自己的podspec文件可以有兩個途徑:
①copy我的podspec文件然后修改對應的參數,推薦使用這種方式。
②執行以下創建命令:

$ pod spec create WZMarqueeView

也會創建名為WZMarqueeView.podspec的文件。但是打開創建完的文件你就會發現里面的東西太多了,很多都是我們不需要的。

2、LICENSE文件
CocoaPods強制要求所有的Pods依賴庫都必須有license文件,否則驗證不會通過。license的類型有很多種,詳情可以參考網站tl;dr Legal。在創建github倉庫的時候,我已經選擇了MIT類型的license。

3、主類文件
創建Pods依賴庫就是為了方便別人使用我們的成果,比如我想共享給大家的WZMarqueeView類,是我想提供給廣大用戶使用的,這個類自然是必不可少的。我把這個類包含的兩個文件放到一個名稱為WZMarqueeView的文件夾中,對應的目錄結構如圖:

里面包含兩個文件:WZMarqueeView.h和WZMarqueeView.m

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

5、README.md
使用github的人應該都熟悉這個文件,它是一個成功github倉庫必不可少的一部分,使用的是markdown標記語言,用于對倉庫的詳細說明。

以上所說的5個是創建Pods依賴庫所需最基礎的文件,其中1、2、3是必需的,4、5是可選但強烈推薦創建的。
添加完這些文件以后,我的github本地倉庫目錄就變成了下圖所示的樣子:

四、提交修改文件到github
經過步驟三,向本地的git倉庫中添加了不少文件,現在需要將它們提交到github倉庫中去。提交過程分以下幾步:
1、pod驗證
執行以下命令:

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

這兩條命令是為pod添加版本號并打上tag。然后執行pod驗證命令:

$ pod lib lint

如果一切正常,這條命令執行完后會出現下面的輸出:

 -> WZMarqueeView (1.0.0)WZMarqueeView passed validation.

到此,pod驗證就結束了。
需要說明的是,在執行pod驗證命令的時候,打印出了任何warning或者error信息,驗證都會失??!如果驗證出現異常,打印的信息會很詳細,大家可以根據對應提示做出修改。

2、本地git倉庫修改內容上傳到github倉庫
依次執行以下命令:

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

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

五、上傳podspec文件到CocoaPods官方倉庫中
經過前邊的四步操作,你可能以為已經結束了,不幸的是還早著呢。

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

打開這個鏈接你就會發現,原來我們能使用的,以及我們使用pod search命令能搜索到的所有Pods依賴庫都會把它們的podspec文件上傳到這個倉庫中,也就是說,只有將我們的podspec文件上傳到這個倉庫中以后,才能成為一個真正的Pods依賴庫,別人才能正常使用!

按照git的規則,要想向別人的倉庫中添加文件,必須先fork一份別人的倉庫,做完相應地修改后,在push給倉庫的原作者,等到作者審核通過,然后合并到原來的倉庫中。

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



然后大家會發現自己名下會多一份倉庫的分支。比如我的分支為:

2、將fork的倉庫clone到本地
執行以下命令:

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

注意,大家需要將對應的倉庫地址換成自己的。
這個倉庫有點大,需要有耐心啊。

3、將自己的podspec文件添加到本地Specs倉庫中
Specs倉庫clone到本地后,會放到一個名為Specs的文件夾中。podspec文件在Specs倉庫中的保存原則是:
Pods依賴庫同名文件夾--->版本號同名文件夾--->podspec文件
照此原則,我需要在Specs文件夾下建立一個名為WZMarqueeView的文件夾,然后進入到WZMarqueeView文件夾下,建立一個名稱為1.0.0的文件夾,最后進入到1.0.0這個文件夾下,并且將之前創建好的WZMarqueeView.podspec文件拷貝進來。
不難理解,如果以后有對WZMarqueeView類的升級,就在WZMarqueeView文件夾下建立對應版本名稱的文件夾,用于保存對應版本的podspec文件即可。
這些操作完成后,目錄層次結構如下所示:

4、上傳本地Specs倉庫中的修改到github倉庫
執行以下命令:

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

成功以后就能在github上自己fork的Specs倉庫中看到剛上傳的文件了。

5、將在自己fork的Specs上做的修改pull給CocoaPods官方的Specs倉庫
進入到自己fork的Specs倉庫中,會看到屏幕左上角有一個綠色按鈕:


該按鈕點進去以后會有如下圖所示的界面:

點擊圖中的綠色Create Pull Request按鈕,即可將我們fork的Specs上做的修改pull給CocoaPods官方的Specs倉庫。

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

6、查看審核進度
當然我們也能查看審核進度,打開這個鏈接:https://github.com/CocoaPods/Specs/pulls,這里能看到所有的Specs倉庫pull請求,如下圖:

紅圈標識的就是我剛才pull上來的請求,點進去以后就能看到對應的審核進度。

六、查看我們自己創建的Pods依賴庫
如果收到了CocoaPods官方發過來的審核通過郵件以后,你可能很著急的想在自己的電腦上執行pod search命令,看看能不能搜索到自己創建的Pods依賴庫。不過你肯定會失望的,因為還需要執行一條命令才能在我們的本地電腦上使用search命令搜索到我們的依賴庫:

$ pod setup

在我的CocoaPods系列教程中的第一篇:CocoaPods詳解之----進階篇中的最后部分介紹過這條命令,它會將所有的Pods依賴庫tree跟新到本地。執行完這條命令,再去執行:

$ pod search WZMarqueeView

就能顯示出對應的介紹信息了!

說了那么多,到這里整個Pods依賴庫創建過程才算真正結束!小伙伴們,你成功了嗎???遇到問題還請留言。

七、參考文檔

1、http://guides.cocoapods.org

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人在线国产精品| 热re99久久精品国产66热| 色狠狠av一区二区三区香蕉蜜桃| 日韩一区在线视频| 4k岛国日韩精品**专区| 久久久久久久久久久免费精品| 欧美多人乱p欧美4p久久| 日本精品va在线观看| 91在线国产电影| 欧美成人激情视频| 中文字幕精品在线| 欧美国产精品日韩| 欧美在线一区二区三区四| 亚洲理论电影网| 亚洲欧洲在线免费| 亚洲自拍偷拍色片视频| 亚洲情综合五月天| 亚洲性av在线| 久久久亚洲影院你懂的| 亚洲一区www| 欧美性69xxxx肥| 国产精品福利片| 欧洲亚洲免费视频| 亚洲国产天堂久久综合网| 国产精品亚洲网站| 91av在线免费观看视频| 欧美黑人巨大精品一区二区| 日韩在线播放av| 黄色一区二区在线观看| 精品亚洲一区二区三区四区五区| 亚洲国产欧美一区| 亚洲欧美另类国产| 日本久久久久久| 亚洲免费av片| 久久久999精品| 91国产在线精品| 精品在线观看国产| 超碰97人人做人人爱少妇| 国产伦精品一区二区三区精品视频| 国产精品久久婷婷六月丁香| 97成人精品视频在线观看| 日韩av在线一区二区| 欧美高清在线观看| 亚洲最大福利网站| 国内揄拍国内精品| 揄拍成人国产精品视频| 欧美精品中文字幕一区| 精品久久久久久久久久久久久| 久久精品亚洲94久久精品| 中文字幕日韩av电影| 91免费电影网站| 最新国产精品拍自在线播放| 奇米4444一区二区三区| 琪琪第一精品导航| 亚洲国产精品va| www.欧美精品一二三区| 亚洲三级免费看| 国产一区二区三区在线看| 国产精品久久久久免费a∨大胸| 国产一区二区三区在线观看网站| 亚洲精品国精品久久99热| 久久99热这里只有精品国产| 日韩在线视频网站| 国产欧美精品在线| 亚洲无亚洲人成网站77777| 欧美激情亚洲综合一区| 国产成人免费91av在线| 美女少妇精品视频| 深夜精品寂寞黄网站在线观看| 欧美日韩国产二区| 91成人在线视频| 日本一本a高清免费不卡| 国产精品网红福利| 国内精品久久久久伊人av| 1769国内精品视频在线播放| 亚洲精品狠狠操| 亚洲国产另类久久精品| 欧美日韩激情视频| 国产精品69久久| 欧美日韩中文在线观看| 欧美日韩一区二区免费在线观看| 日本精品性网站在线观看| 成人激情视频免费在线| 亚洲人免费视频| 性欧美xxxx视频在线观看| 日本精品一区二区三区在线播放视频| 久久视频在线直播| 欧美性xxxxx极品娇小| 日韩av一区二区在线观看| 欧美精品做受xxx性少妇| 精品亚洲男同gayvideo网站| 自拍偷拍免费精品| 国产欧美日韩视频| 国产日韩视频在线观看| 亚洲直播在线一区| 啊v视频在线一区二区三区| 国精产品一区一区三区有限在线| 人人做人人澡人人爽欧美| 国产精品尤物福利片在线观看| 国产精品伦子伦免费视频| 国产成人91久久精品| 国产精品wwww| 91在线中文字幕| 亚洲成年人影院在线| 国产在线观看91精品一区| 亚洲激情中文字幕| 欧美激情视频网| 色妞欧美日韩在线| 欧美一级片一区| 欧美成人精品在线观看| 在线成人激情黄色| 亚洲欧美日韩另类| 久久久久久国产免费| 亚洲一区av在线播放| 中文国产成人精品| 国产精品美女久久久久av超清| 国产视频精品xxxx| 成人免费视频xnxx.com| yw.139尤物在线精品视频| 欧美日韩国产一中文字不卡| 国产成人精品免费视频| 北条麻妃99精品青青久久| 久久国产精品影视| 精品久久久中文| 亚洲美女动态图120秒| 九九热r在线视频精品| 精品亚洲国产成av人片传媒| 亚洲香蕉av在线一区二区三区| 欧美成人精品一区二区| 最新亚洲国产精品| 亚洲最大福利视频网站| 欧美日韩亚洲91| 亚洲理论片在线观看| 91久久综合亚洲鲁鲁五月天| 欧美另类在线播放| 久久影视免费观看| 久久综合免费视频影院| 久久影院中文字幕| 国产精品美女久久久久久免费| 亚洲一区二区精品| 欧美另类69精品久久久久9999| 国产精品夜色7777狼人| 国产做受高潮69| 国产美女久久精品香蕉69| 欧美日韩国产激情| 国产成人福利视频| 美女999久久久精品视频| 日av在线播放中文不卡| 国产精品av在线| 俺去了亚洲欧美日韩| 欧美日韩在线视频一区二区| 国产精品第8页| 日韩成人av在线| 日本老师69xxx| 亚洲精品狠狠操| 91超碰caoporn97人人| 亚洲黄一区二区| 久久久久久久影院| 久青草国产97香蕉在线视频| 国产午夜精品一区二区三区| 日韩在线免费视频| 国产精品久久久久久久久久久不卡| 精品亚洲va在线va天堂资源站| 成人精品视频久久久久|