版權聲明:本文為博主原創文章,未經博主允許不得轉載。
說明:2015年12月2日更新,增加一個可能遇到的問題,優化排版。使用CocoaPods過程中遇到問題,歡迎評論交流。
一、CocoaPods的安裝
(1)使用淘寶的Ruby鏡像替換官方的ruby源,在終端輸入命令
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l
如果結果為下面的樣子,說明替換成功了。
***CURRENT SOURCES ***
https://ruby.taobao.org/
(2)升級gem,在終端輸入命令
$ sudo gem update --system
接着會要求輸入電腦密碼,輸入密碼后回車,就開始升級了。如果看到下面這句話,說明升級成功了。
RubyGems system software updated
(3)安裝CocoaPods,在終端輸入命令
$ sudo gem install cocoapods
輸入密碼后開始安裝。
二、CocoaPods的使用
(1)查找第三方庫,在終端輸入命令
$ pod search AFNetworking
會顯示出AFNetworking相關的庫
(2)在工程中創建一個Podfile文件,在終端輸入命令
$cd 工程根目錄路徑
$ touch Podfile
(3)使用Xcode打開Podfile,然后按如下格式編輯Podfile,保存。
platform :ios, '7.0'
pod 'AFNetworking', '~>2.0'
pod 'MJExtension'
platform :ios, '6.1'
pod 'SDWebImage', '~>3.7'
pod 'MBProgressHUD', '~>0.9.1'
pod 'Reachability', '~> 3.2'
(4)安裝第三方庫,在終端輸入命令
$cd 工程根目錄路徑
$ pod install
至此,你的所有第三方庫都已經下載完成並且設置好了編譯參數和依賴。
三、日常使用
(1)使用CocoaPods 生成的 .xcworkspace 文件來打開工程,而不是以前的.xcodeproj 文件。
(2)每次更改了Podfile 文件,你需要cd到工程根目錄,然后重新執行一次pod update命令。
四、可能遇到的問題
(1)使用cocoapods導入第三方類庫后頭文件沒有代碼提示?
解決辦法: 選擇Target -> Build Settings 菜單,找到\”User Header Search Paths\”設置項,新增一個值"${SRCROOT}",並且選擇\”Recursive\”
(2)出現如下警告
[!] Your Podfile has had smart quotessanitised. To avoid issues in the future, you should not use TextEdit forediting it. If you are not using TextEdit, you should turn off smart quotes inyour editor of choice.
解決辦法:不要使用文本編輯去編輯Podfile,使用Xcode編輯,或者使用終端敲命令去編輯。
(3) 執行pod install 或pod update 命令后,updating local specsrepositories 卡住不動
解決辦法:pod install 被牆了,換成新的命令pod install --verbose --no-repo-update
(4) 項目運行時報錯:Thefile “Pods.xcconfig” couldn’t be opened because there is no such file.
Swift使用時:
注意:你不能使用TextEdit來編輯Podfile,因為它有可能用圖形化的更有吸引力的typeset quotes代替standard quotes,這可能導致CocoaPods不能理解並拋出錯誤,所以最好用Xcode或者別的編程文本編輯器來編輯你的Podfile。
默認的podFile看起來是這樣的:
1
2
3
4
5
|
# Uncomment this line to define a global platform for your project# platform :ios, '6.0'
target
'IceCreamShop'
do
end
target
'IceCreamShopTests'
do
end
|
將注釋的內容替換成下面的兩行:
1
|
platform :ios,
"8.0"
use_frameworks!
|
這就告訴了CocoaPods--你的項目使用的是iOS 8.0,並且將使用框架來代替靜態庫。
想要在Swift中使用CocoaPods,你必須明確的寫出use_frameworks! 來選擇使用框架。如果你忘了寫這個,CocoaPods能檢測到你使用使用Swift CocoaPods,你安裝pods的時候就會報錯。
Swift podfile 格式
source 'https://github.com/CocoaPods/Specs.git' platform :ios, ‘8.0’ use_frameworks! target 'Alamofire+SwiftyJSON' do pod 'Alamofire', '~> 3.0' pod 'SwiftyJSON', '~> 3.0' end
Cocoapods 引用第三方庫的幾種方式
使用過 Cocoapods 的童鞋應該都知道,Cocoapods 的引用方式有三種:
方式 | 例子 | 說明 |
---|---|---|
版本號引用 | pod 'Alamofire', '~> 3.0' | 這種方式引用的是已經發布的版本,包含了 >``>=``<``<=``~> 幾種版本限制符號,其中~> 符號代表只更新最新的小版本號,比如 ~> 1.0.0 則只會更新到 1.0.x 的最新版本,而不會更新 1.x.0 以上的版本 |
本地路徑引用 | pod 'Alamofire', :path => '~/Documents/Alamofire' | 這種方式直接引用本地的代碼,這種方式下對引用庫的修改仍然會提交到引用庫的 git 上,而不會提交到主工程。 |
遠程 git 路徑引用 | pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git' | 這種方式直接引用遠程 git 代碼,不需要引用的庫進行發布,而且還支持 :branch => 、:tag => 和 :commit => 三種選項 |