CocoaPods安裝及bug解決方案

為什么要用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中出現的一些錯誤及解決方案,分享給大家


  • 錯誤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 by Podfile
    Specs satisfying the AFNetworking (~> 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 the master repo. If this is an unexpected issue and persists you can inspect it running pod 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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容