iOS Cocoapod 集成

CocoaPods簡介:

CocoaPods是iOS項目的依賴管理工具,該項目源碼在Github上管理苍鲜。開發(fā)iOS項目不可避免地要使用第三方開源庫混滔,CocoaPods的出現(xiàn)使得我們可以節(jié)省設置和第三方開源庫的時間油湖。 在使用CocoaPods之前乏德,開發(fā)項目需要用到第三方開源庫的時候喊括,我們需要

1.把開源庫的源代碼復制到項目中
2.添加一些依賴框架和動態(tài)庫
3.設置-ObjC郑什,-fno-objc-arc等參數(shù)
4.管理他們的更新

在使用CocoaPods后蘑拯,我們只需要把用到的開源庫放到一個名為Podfile的文件中强胰,然后執(zhí)行pod install.Cocoapods就會自動將這些第三方開源庫的源碼下載下來偶洋,并且為我們的工程設置好響應的系統(tǒng)依賴和編譯參數(shù)玄窝。

一恩脂、CocoaPods的原理

CocoaPods的原理是將所有的依賴庫都放到另一個名為Pods的項目中,然后讓主項目依賴Pods項目浓领,這樣联贩,源碼管理工作都從主項目移到了Pods項目中泪幌。Pods項目最終會編譯成一個名為libPods.a的文件,主項目只需要依賴這個.a文件即可建芙。

二岁钓、Cocoapod的安裝:

1微王、ruby環(huán)境:

在安裝Cocoapod前要確認ruby是否正確安裝,可以用如下命令確認當前ruby環(huán)境:
??$ ruby -v
下面是我的的ruby環(huán)境:
ruby 2.3.7p456 (2018-03-28 revision 63024)

屏幕快照 2019-01-30 上午10.42.56.png

2罩旋、添加gem源

淘寶源:https://ruby.taobao.org/
China源最新域名:https://gems.ruby-china.com
淘寶源已經(jīng)停止維護了,現(xiàn)由 ruby-china 提供鏡像服務涨醋,可以使用China源作為gem源浴骂。

首先需要確認自己的gem源:

  1. 查看是否添加了gem源:
    ??$ gem sources -l
    ??https://gems.ruby-china.org/
    如果添加了淘寶的源溯警,可以使用如下命令修改gem源:
    ? $ sudo gem sources --add https://gems.ruby-china.org/ --remove https://ruby.taobao.org/
    ruby-china的域名已經(jīng)更新為.com,可以更新一下源:
    $ sudo gem sources --add https://gems.ruby-china.com/ --remove https://gems.ruby-china.org/
屏幕快照 2019-01-30 上午11.22.00.png
  1. 如果沒有添加gem源,可以使用如下命令添加gem源:
    ??$ sudo gem sources --add https://gems.ruby-china.com
    ??添加完成后喳挑,確認當前gem源:
    ??$ gem sources -l
    ??https://gems.ruby-china.com

  2. 查看gem源版本:
    ??$ gem -v
    ??2.5.2.3

屏幕快照 2019-01-30 上午10.55.50.png
3伊诵、安裝Cocoa-pod
  • gem 安裝 cocoapods
    $ sudo gem install cocoapods --pre
    $ sudo gem install cocoapods -v 1.4.0
屏幕快照 2019-01-30 上午11.27.36.png
  • pod setup

此過程很是緩慢
??$ pod setup
??Setting up CocoaPods master repo

屏幕快照 2019-01-30 下午12.02.37.png

三、使用Cocoapod為工程導入第三方庫

1浙炼、為主工程生成Podfile
在工程的.xcodeproj目錄(必須在此目錄)中,執(zhí)行如下命令蜗帜,即可得到Podfile厅缺。
??$ pod init
2湘捎、編輯Podfile文件

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'POD_DEMO' do
# ~> 后面的數(shù)字是 3.2 版本窥妇,可以省略娩践,則安裝或升級最新版本
pod 'AFNetworking','~>3.2'

end

3翻伺、生成.xcworkspace工程入口

按照上面的步驟吨岭,在子工程下面添加完成podspec之后未妹,在主工程的Podfile對應目錄下執(zhí)行如下命令,即可得到對應的 *.xcworkspace工程入口族檬。
??$ pod install --no-repo-update

4单料、運行.xcworkspace啟動工程,可以看到工程已經(jīng)添加了pod

四扫尖、常用的Pod命令:

# 創(chuàng)建 Podfile 文件
  pod init

# 下載“Podfile”中定義的所有依賴項,并創(chuàng)建一個pod庫
  pod install

# 下載“Podfile”中定義的所有依賴項,并創(chuàng)建一個pod庫,不更新本地代碼庫
  pod install --no-repo-update 

# 更新Podfile中依賴的框架
  pod update

# 更新Podfile中依賴的框架,可以安裝新框架或者刪除不用的框架换怖,但是不會升級項目已經(jīng)安裝的框架
  pod update --no-repo-update 

# 查看哪些框架有更新版本
 pod outdated

# 搜索框架 #空格 下一頁 #q 退出
  pod search AFNetworking

# 只搜索符合名字的框架
  pod search AFNetworking --simple

# 幫助命令
  pod --help

#其他命令的用法可以用 命令+ --help的方式查看用法幫助

五条摸、從工程中刪除Cocoapod:

刪除工程中的Cocoapod需要刪除下列文件:

  1. 刪除工程文件夾下的Podfile铸屉、Podfile.lock及Pods文件夾
  2. 刪除xcworkspace文件
  3. 使用.xcodeproj文件打開工程彻坛,刪除Frameworks組下的libPods.a引用以及Pods.xcconfig,以及殘留的pod文件夾昌屉。
  4. 刪除工程pod配置項 TARGET->Build Phases ->

[CP] Check Pods Manifest.lock
[CP] Copy Pods Resources
[CP] Embed Pods Frameworks

屏幕快照 2019-01-30 下午3.45.14.png

五怠益、制作自己的Cocoapod庫

pod網(wǎng)站: https://cocoapods.org

制作私有庫的基本步驟:

1.在github創(chuàng)建一個共有庫
2.clone到本地,在該文件夾內(nèi)創(chuàng)建一個新的項目
3.上傳到github上
4.創(chuàng)建或登錄trunk賬號
5.添加.podspec文件
6.podspec上傳到github
7.添加庫tag標記
8.驗證podspec文件
9.podspec上傳到Cocoapod中
10.更新本地倉庫
11.查看上傳結(jié)果
12.更新維護自己的庫

1.在github上創(chuàng)建一個共有庫:

如圖:

屏幕快照 2019-01-31 下午3.16.05.png

2.clone到本地,在該文件夾內(nèi)創(chuàng)建一個新的項目:

新建的項目一般會自帶一層目錄,可以將此目錄去掉,將準備公開的庫文件放在一個文件夾中,同LICENSE,README文件放在同一目錄下:
結(jié)果如圖:


屏幕快照 2019-01-31 下午3.25.26.png

3.上傳到github上

相關命令:
$ git add .
$ git commit -m "本次提交的具體內(nèi)容"
$ git push

4.創(chuàng)建或登錄trunk賬號

我們要讓用戶使用我們的的庫抢呆,就需要上傳到CocoaPod網(wǎng)站進行托管.而要上傳文件到CocoaPod笛谦,就要創(chuàng)建trunk賬戶.

4.1 檢測是否已經(jīng)登錄
$ pod trunk me

如果沒有那么創(chuàng)建用戶
4.2 創(chuàng)建pod trunk 用戶
pod trunk register youxiang@163.com "YourName"

4.3 查收郵件
收到郵件饥脑,點擊郵件的鏈接,會跳轉(zhuǎn)到一個頁面,提示驗證通過
執(zhí)行:$ pod trunk me
驗證一下

5.添加.podspec文件

我的代碼已經(jīng)提交到github上谣沸,還需要上傳到CocoaPod上乳附,.podspec文件就是幫助用戶搜索到我們制作的庫文件的描述文件.

創(chuàng)建.podspec文件有兩種方法

方法一:復制已經(jīng)較成熟的第三方庫的.podspec文件到你的項目中,然后將各種信息改成你自己的
下面是我的.podspec

Pod::Spec.new do |s|
  s.name         = "SKImageCodeTypeTool" //庫名字
  s.version      = "1.0.0" //庫版本號
  s.ios.deployment_target = '6.0'
  s.summary      = "A picture encode format check" //庫的簡介
  s.homepage     = "https://github.com/emptyglass123/SKImageCodeTypeToolDemo" // 庫的github地址
  s.license      = "MIT" // license 創(chuàng)建git倉庫時勾選的
  s.author             = { "author" => "111111111@163.com" }// 庫的作者
  s.social_media_url   = "https://github.com/emptyglass123/SKImageCodeTypeToolDemo"
  s.source       = { :git => "https://github.com/emptyglass123/SKImageCodeTypeToolDemo", :tag => s.version }
  s.source_files  = "SKImageCodeTypeTool" // 暴露給用戶的庫文件所在文件夾
  s.requires_arc = true // ARC 
end

方法二:手動創(chuàng)建,先切到工程目錄,執(zhí)行命令
pod spec create 庫名
隨后會在當前目錄下生成一個庫名. podspec文件,使用Xcode打開,編輯相關項:

完整文件目錄結(jié)構(gòu):


屏幕快照 2019-01-31 下午4.27.51.png

6.將. podspec文件上傳到github

git add .
git commit -m "添加了 .podspec文件"
git push

7.添加tag標記

git tag 1.0.0
git push --tags
這句話就是給我們的庫文件打tag,這個tag一定要和.podspec文件內(nèi)容一一對應举农,否則有問題

8.驗證podspec文件

我們?nèi)ヲ炞C自己的庫文件的時候敞嗡,這樣寫

pod spec lint
或者
pod spec lint SKImageCodeTypeTool.podspec

但是有的時候會有一些warning,然后就驗證失敗,所以我們此時可以

pod spec lint SKImageCodeTypeTool.podspec --allow-warnings
屏幕快照 2019-01-31 下午4.08.56.png

9.上傳到Cocoapod:

如果剛才驗證沃粗,沒有發(fā)現(xiàn)警告最盅,那么可以直接這個樣上傳
pod trunk push KImageCodeTypeTool.podspec

如果有警告涡贱,那么我們要去修改警告或者忽略警告
pod trunk push KImageCodeTypeTool.podspec --allow-warnings

上傳成功!


屏幕快照 2019-01-31 下午4.12.14.png

10.更新本地庫:

因為CocoaPod本身一直在集成很多開發(fā)者的庫,他的master分支一直是在更新的嘀粱,但是你本地的庫相對于剛才上傳SKImageCodeTypeTool的時間節(jié)點你本地的庫是老的
所以我們要去更新一下本地的庫,具體操作:

pod setup //初始化
pod repo update//更新倉庫

11.查看上傳結(jié)果:

pod search SKImageCodeTypeTool //查找
會有一定延遲:
pod tunk me

屏幕快照 2019-01-31 下午4.15.45.png

可以再pop網(wǎng)站搜索
https://cocoapods.org

12.更新維護自己的庫

1.修改項目源碼
2.上傳github
3.修改.podspece內(nèi)部的版本號
4.打tag(同.podspece中版本號)
5.上傳tags

六垄分、Cocoapod的升級:

1.查看當前ruby源路徑:

gem sources -l
*** CURRENT SOURCES ***
http://gems.ruby-china.org/

2薄湿、更新一下gem版本

sudo gem update --system
直到看到
RubyGems system software updated
或者 Latest version already installed. Done.
說明gem版本更新成功

3豺瘤、更新cocoapods

sudo gem install -n /usr/local/bin cocoapods --pre
更新完成之后坐求,再次查看cocoapods的版本
pod --version

截屏2020-03-28上午11.46.19.png

參考鏈接
http://www.reibang.com/p/283584683b0b
http://www.reibang.com/p/e52bb69628a9
http://www.reibang.com/p/43f5d099e147

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市砸逊,隨后出現(xiàn)的幾起案子师逸,更是在濱河造成了極大的恐慌篓像,老刑警劉巖员辩,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丹皱,居然都是意外死亡摊崭,警方通過查閱死者的電腦和手機呢簸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門根时,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啸箫,“玉大人,你說我怎么就攤上這事唱较∧匣海” “怎么了汉形?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長倍阐。 經(jīng)常有香客問我概疆,道長,這世上最難降的妖魔是什么峰搪? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任岔冀,我火速辦了婚禮,結(jié)果婚禮上概耻,老公的妹妹穿的比我還像新娘使套。我一直安慰自己罐呼,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布侦高。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谊娇,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天法褥,我揣著相機與錄音呐萨,去河邊找鬼。 笑死谜悟,一個胖子當著我的面吹牛礼患,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼庶骄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肺樟?” 一聲冷哼從身側(cè)響起田柔,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糠亩,沒想到半個月后垂寥,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體文判,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡敷待,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡票堵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情担败,我是刑警寧澤岖研,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布镶奉,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏音半。R本人自食惡果不足惜宣旱,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一阿宅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绒窑,春花似錦、人聲如沸缚甩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纯续。三九已至,卻和暖如春魔慷,著一層夾襖步出監(jiān)牢的瞬間伍茄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工端壳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留照捡,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓寥殖,卻偏偏與公主長得像嚼贡,于是被迫代替她去往敵國和親粤策。 傳聞我的和親對象是個殘疾皇子柔吼,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容