為什么要用CocoaPods
- 現在眾所周知隨著swift的出現,cocoaPods越來越??
- 為什么呢?
- 因為swift出現了一個叫命名空間的機制,也就是說整個工程在同一個命名空間下,不需要倒入頭文件(也不需要再像OC那樣加上前綴),不管那個類直接寫就可以了,正因為如此出現了新的問題
- 在我們的工程中會倒入一些第三方框架,但是如果出現重名了怎么解決呢?
- 在OC中可以增加前綴來解決
- 現在Swift中
沒有前綴也不需要導入頭文件
,解決方案就是一個swift工程是一個命名空間,在不同的工程下(也就是意味著不同的命名空間下),相同的名稱是不會沖突的,所以就需要用到cocoaPods
Xcode8 10.12 系統需要更換一下路徑看我的文章
Xcode8更新CocoaPods報錯解決辦法
- 最新版 CocoaPods 的安裝流程
注意:在終端輸入命令的時候前面的$ 符去掉
- 1.移除現有Ruby默認源
$gem sources --remove https://rubygems.org/
- 2.使用新的源
$gem sources -a https://ruby.taobao.org/
- 3.驗證新源是否替換成功
$gem sources -l
- 4.安裝CocoaPods
(1) $sudo gem install cocoapods
備注:蘋果系統升級 OS X EI Capitan 后改為
$sudo gem install -n /usr/local/bin cocoapods
輸入電腦密碼,注意哦,這里輸入電腦密碼看不到的哦,直接輸入
(2) $pod setup
軍哥提示:
出現Setting up CocoaPods master repo,說明Cocoapods在將它的信息下載到
~/.cocoapods里,這個目錄最終大小是135.8多M(可能有誤差,我自己測試的是這么大),就是完成了
當出現 `Setup completed` 代表設置成功,這個過程比較漫長,如果翻墻會快些
- 5.更新gem
$sudo gem update --system
- 6.測試cocoaPods是否安裝成功
pod search 'AFNetWorking'
如果出現你要查找的東西證明已經成功
-7 新建Xcode工程,并在終端用cd指令到文件夾內
$pod search `第三方框架`
例如: pod search AFNetworking
8.新建文件 vim “Podfile”,
$vim Podfile
- 8.1.輸入i
進入編輯模式 - 8.2 拷貝以下內容
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'AFNetworking'
- 8.3 :wq保存并退出
小提示:(vim命令按 i 編輯,esc退出編輯,:wq 保存并退出)
- 9.導入第三方庫
$pod install
-
10 看到這個證明你的cocoaPods 配置成功
是不是so easy
Updating local specs repositories - 11.退出終端
以下是我在安裝cocoaPods中出現的一些錯誤及解決方案,分享給大家
- 錯誤1:
Error fetching http://ruby.taobao.org/:
bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
解決方案:把安裝流程中 $gem sources -a http://ruby.taobao.org/ ---改為----> $gem sources -a https://ruby.taobao.org/
- 錯誤2:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
解決方案:蘋果系統升級OS X EI Capitan后會出現的插件錯誤,將安裝流程中
(1)sudo gem install cocoa pods 改為
sudo gem install -n /usr/local/bin cocoapods
- 錯誤3:
[!] Unable to satisfy the following requirements: -AFNetworking (~> 3.0.4)
required byPodfile
Specs satisfying theAFNetworking (~> 3.0.4)
dependency were found, but they required a higher minimum deployment target. - 解決方案:安裝流程:Podfile文件 中 AFNetworking~> ‘3.0.4’ 后邊的 3.0.4 是第三方框架版本號,可以加上,也可以不加
- 錯誤4.
[!] CocoaPods was not able to update themaster
repo. If this is an unexpected issue and persists you can inspect it runningpod repo update --verbose
沒有讀寫權限
嘗試解決: - 嘗試1、根據提示,跑一下 pod repo update --verbose
- 嘗試2、如果還是出現原來問題,升級 gem update cocoapods(如果CocoaPods還不是最新版本)
- 嘗試3、如果升級還是出現原來的問題,那么重裝CocoaPods 。
首先查看本地裝了關于cocoapods的哪些東西,在終端輸入
gem list --local grep cocoapods
接著全部卸掉上面的,在終端輸入
sudo gem uninstall cocoapods
再安裝,在終端輸入
gem install cocoapods
- 嘗試4、如果問題依舊,那么請清除緩存再pod setup
清除命令
sudo rm -fr ~/.cocoapods/repos/master
初始化
pod setup
結論:之前的版本沒有權限,移除再安裝就好了
-
錯誤5.如果出現這種情況
代表你的工程中已經有第三方庫了,cocoapods不知道路徑,需要手動告訴他路徑
需要在vim “Podfile”中增加
xcodeproj '你文件夾名稱/工程名稱.xcodeproj'
例如
xcodeproj '小碼哥微博/小碼哥微博.xcodeproj'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'AFNetworking', '~> 3.0'
再次執行更新命令
pod install
之后你會發現你的工程中已經有了Pods了,并且三方框架也倒入進來了
之后就成這個樣子了,真的很強大哦
-
錯誤6:
如果導入copds之后出現這樣的問題
第一種解決辦法需要橋接,也就是Swift和OC混編
-
1.新建OC頭文件
新建OC頭文件 -
2.導入第三方庫
導入第三方庫 -
3.配置路徑
追尋到工程路徑就可以了 -
4.路徑尋找
路徑尋找,相對路徑
第二種解決辦法需要在 Podfile 中增加一句代碼
use_frameworks!
Podfile 中增加一句代碼 use_frameworks!
然后再次執行更新就可以了
pod update