1. 程式人生 > >CocoaPods pod install/pod update更新慢的問題

CocoaPods pod install/pod update更新慢的問題

作者:wangzz原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437轉載請註明出處如果覺得文章對你有所幫助,請通過留言或關注微信公眾帳號wangzzstrive來支援我,謝謝!

最常見遇到的問題::: 

1.

最近使用CocoaPods來新增第三方類庫,無論是執行pod install還是pod update都卡在了Analyzing dependencies不動

原因在於當執行以上兩個命令的時候會升級CocoaPods的spec倉庫,加一個引數可以省略這一步,然後速度就會提升不少。加引數的命令如下:

pod install --verbose --no-repo-update

pod update --verbose --no-repo-update

或者

pod install --no-repo-update

pod update --no-repo-update

2.問題截圖


解決辦法 :  pod repo update   原因:你本地的repo庫太長時間沒有更新了

一、什麼是CocoaPods

1、為什麼需要CocoaPods

在進行iOS開發的時候,總免不了使用第三方的開源庫,比如SBJson、AFNetworking、Reachability等等。使用這些庫的時候通常需要:

  • 下載開源庫的原始碼並引入工程
  • 向工程中新增開源庫使用到的framework
  • 解決開源庫和開源庫以及開源庫和工程之間的依賴關係、檢查重複新增的framework等問題
  • 如果開源庫有更新的時候,還需要將工程中使用的開源庫刪除,重新執行前面的三個步驟,頓時頭都大了。。。

自從有了CocoaPods以後,這些繁雜的工作就不再需要我們親力親為了,只需要我們做好少量的配置工作,CocoaPods會為我們做好一切!

2、什麼是CocoaPods

CocoaPods是一個用來幫助我們管理第三方依賴庫的工具。它可以解決庫與庫之間的依賴關係,下載庫的原始碼,同時通過建立一個Xcode的workspace來將這些第三方庫和我們的工程連線起來,供我們開發使用。

使用CocoaPods的目的是讓我們能自動化的、集中的、直觀的管理第三方開源庫。

二、安裝CocoaPods

1、安裝

CocoaPods是用Ruby實現的,要想使用它首先需要有Ruby的環境。幸運的是OS X系統預設的已經可以執行Ruby了,因此我們只需要執行以下命令:

[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. $ sudo gem install cocoapods  
CocoaPods是以Ruby gem包的形式被安裝的。在安裝執行的過程中,可能會問我們是不是更新rake,輸入y即可。這是因為rake gem包會在安裝的過程中檢查更細,如果有可用的新版本就會出現剛才的選項。

在安裝程序結束的時候,執行命令:

[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. $ pod setup  
如果沒有報錯,就說明一切安裝就成功了!

2、安裝過程中可能遇到的問題

①執行完install命令半天沒反應

這有可能是因為Ruby的預設源使用的是cocoapods.org,國內訪問這個網址有時候會有問題,網上的一種解決方案是將遠替換成淘寶的,替換方式如下:

[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. $ gem sources --remove https://rubygems.org/  
  2. //等有反應之後再敲入以下命令  
  3. $ gem sources -a http://ruby.taobao.org/  
要想驗證是否替換成功了,可以執行:[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. $ gem sources -l  
正常的輸出是:[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. *** CURRENT SOURCES ***  
  2. http://ruby.taobao.org/  

②gem版本過老

gem是管理Ruby庫和程式的標準包,如果它的版本過低也可能導致安裝失敗,解決方案自然是升級gem,執行下述命令即可:

[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. $ sudo gem update --system  

③安裝完成後,執行pod setup命令時報錯:

[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (>= 0) among 6 total gem(s) (Gem::LoadError)  
  2.     from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec'  
  3.     from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem'  
  4.     from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `<main>'  
這就是路徑設定的問題,可以通過執行:[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. $ rvm use ruby-1.9.3-p448  
解決該問題。

3、升級CocoaPods

升級很簡單,再次執行安裝命令即可:

[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. $ sudo gem install cocoapods  
需要注意的是,如果安裝的時候使用了sudo,升級的時候一樣需要使用該關鍵字,不然升級完了以後又會出現路徑不匹配問題。

三、使用CocoaPods

如果之前做的一切順利,接下來就可以體驗體驗CocoaPods的神奇之處了,需要經過以下幾步:

為了演示這個過程,我建立了一個名為CocoaPodsTest的工程。

1、建立Podfile

CocoaPods的一切都是從一個名為Podfile的檔案開始的,我們需要先建立這個檔案。個人習慣使用命令列,我會這樣做:

[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. $ cd /Users/wangzz/Desktop/CocoaPodsTest  
  2. $ touch Podfile  
首先進入到工程的根目錄下,建立空白的Podfile檔案,建立完畢的目錄結構如下圖:



(PS:Podfile檔案也可以不放在工程的根目錄下,只是會稍微麻煩點,在下一篇文章中會有介紹,敬請關注。)

2、編輯Podfile

根據需要,我們可以在Podfile檔案中寫入需要用到的第三方庫,以SBJson、AFNetworking、Reachability三個庫為例,我的Podfile內容如下:

[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. platform :ios  
  2. pod 'Reachability',  '~> 3.0.0'  
  3. pod 'SBJson''~> 4.0.0'  
  4. platform :ios, '7.0'  
  5. pod 'AFNetworking''~> 2.0'  

3、執行匯入命令

準備工作都完成後,開始匯入第三方庫:

[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. $ cd /Users/wangzz/Desktop/CocoaPodsTest  
  2. $ pod install  
首先進入工程根目錄,然後執行pod install命令,CocoaPods就開始為我們做下載原始碼、配置依賴關係、引入需要的framework等一些列工作,命令的執行結果打印出來如下:[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. Analyzing dependencies  
  2. Downloading dependencies  
  3. Installing AFNetworking (2.1.0)  
  4. Installing JSONKit (1.5pre)  
  5. Installing Reachability (3.0.0)  
  6. Generating Pods project  
  7. Integrating client project  
  8. [!] From now on use `CocoaPodsTest.xcworkspace`.  
這就說明pod install命令執行成功了。再來看看工程根目錄發生的變化,如下圖:


可以看到,工程的根目錄下多了三個東西:CocoaPodsTest.xcworkspace、Podfile.lock檔案和Pods目錄。

(PS:篇幅有限,Podfile.lock檔案會放到系列文章的下一篇介紹,敬請關注。)

再看看剛才執行完pod install命令打印出來的內容的最後一行:

[objc] view plaincopy在CODE上檢視程式碼片派生到我的程式碼片
  1. [!] From now on use `CocoaPodsTest.xcworkspace`.  
提示我們從現在起,我們需要使用CocoaPodsTest.xcworkspace檔案來開發。

對於工程發生的變化,有幾點需要說明:

  • 第三方庫會被編譯成靜態庫供我們正真的工程使用

CocoaPods會將所有的第三方庫以target的方式組成一個名為Pods的工程,該工程就放在剛才新生成的Pods目錄下。整個第三方庫工程會生成一個名稱為libPods.a的靜態庫提供給我們自己的CocoaPodsTest工程使用。

  • 我們的工程和第三方庫所在的工程會由一個新生成的workspace管理

為了方便我們直觀的管理工程和第三方庫,CocoaPodsTest工程和Pods工程會被以workspace的形式組織和管理,也就是我們剛才看到的CocoaPodsTest.xcworkspace檔案。

原來的工程設定已經被更改了,這時候我們直接開啟原來的工程檔案去編譯就會報錯,只能使用新生成的workspace來進行專案管理。

開啟CocoaPodsTest.xcworkspace,介面如下:

工程的目錄結構還是非常明顯的。

在專案中引用剛才新增的第三方庫的標頭檔案,執行編譯操作,果斷成功!

至此,CocoaPods使用篇告一段落,接下來打算再用一個篇幅介紹CocoaPods稍微深層次的東西,敬請關注。

四、參考資料

1、http://code4app.com/article/cocoapods-install-usage

2、http://cocoapods.org/

相關推薦

CocoaPods pod install/pod update更新的問題

作者:wangzz原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437轉載請註明出處如果覺得文章對你有所幫助,請通過留言或關注微信公眾帳號wangzzstrive來支援我,謝謝! 最常見遇到的問題:::

CocoaPods 執行pod install 沒反應

使用CocoaPods來新增第三方類庫,無論是執行pod install還是pod update都卡在了Analyzing dependencies不動 原因在於當執行以上兩個命令的時候會升級CocoaPods的spec倉庫,加一個引數可以省略這一步,然後速度就會提升不少。加引數的命令如下: pod

iOS開發知識之:pod installpod update的區別

引言 許多使用cocoapod的人認為pod install只在第一次使用CocoaPod設定專案的時候使用,pod update是在設定完專案之後使用的,但事實並非如此。 這篇指南將會說明什麼時候應該使用pod install,什麼時候應該使用pod update。 如果你覺得這篇指南太過於

iOS開發~CocoaPods使用詳細說明 cocoapods pod install 安裝報錯 is not used in any concrete target

iOS開發~CocoaPods使用詳細說明 2014-08-06 11:08 25320人閱讀 評論(12) 收藏 舉報 分類: ios(56) 一、概要 iOS開

到底是pod install 還是 pod update

使用 CocoaPods 的細節問題 對於初學者來說,使用 pod install 或者 pod update 並不會影響大局,所以有的人就習慣了一直沿用自己的更新方式。下面就簡單介紹一下這兩種更新方式的區別 1.pod install : 這個是第一次在

Tips pod install速度的終極解決方案

前言 作為一名iOS開發,新電腦總是逃不過配置Cocoapods。但是每次pod install都需要挑戰耐心,因為實在是太太太太太慢了,我的電腦是幾kb每秒,而且下載一會兒就gg了,根本沒有注意到什麼時候失敗了,沒辦法還得硬著頭皮重下。試過了很多種方法,發現都不是很理想,

pod update更新

inspect read .cn date bubuko curl 停止 .com lose 1、 pod update 的時候出現下邊的錯誤 error: RPC failed; curl 18 transfer closed with outstandin

osx升級到10.10後,用pod install報錯終於解決的方法

... tar font tails http fat error: hat space 先依照這個文章做:http://blog.csdn.net/dqjyong/article/details/37958067 大概過程例如以下: Open Xcode 6O

pod install報錯 [!] Error installing......

ron mage idt 解決辦法 ins 希望 留言 失敗 img 今天pod install出現這個錯誤: 解決辦法: 多試幾次就好了,也不知道之前幾次都失敗.....希望知道的可以留言告訴我喲!!!pod install報錯 [!] Error installing

Kubernetes Pod應用的滾動更新(八)

一、環境準備 我們緊接上一節的環境,進行下面的操作,如果不清楚的,可以先檢視上一篇博文。 滾動更新是一次只更新一小部分副本,成功後,再更新更多的副本,最終完成所有副本的更新。滾動更新的最大的好處是零停機,整個更新過程始終有副本在執行,從而保證了業務的連續性。 二、更新 我們檢視一下上一節的配置檔案my

iOS元件化開發之——使用Cocoapods打私有的Pod

隨著專案和業務的發展,專案中會有很多基礎功能模組和通用業務模組可以抽象出來獨立成元件,這樣可以為我們以後在開發新專案的時候提供共用基礎元件,進行元件化程式設計,不需要重新造輪子,提高開發效率。因此我們就需要一個方案來合理的管理公共的元件。 Spec Repo(配置倉庫)

pod install error , 專案包含框架衝突

背景 匯入三方資源的時候發現一個報錯, 修改完 podfile 之後終端執行 $ pod install. 提示錯誤 The ‘Pods-ProjectName’ target has frameworks with conflicting names: nim

xcode - pod install 出現錯誤

   xcode 10 上pod install 出現錯誤 error: /Users/apple/Desktop/VenusClient/Pods/Pods/Target Support Files/Pods-VenusMaster/Pods-VenusMaster.debug

原始碼篇(每次pod install之後,pods scheme 自動消失問題的解決)

前言由於專案裡業務線很多,集成了很多第三方pod庫 和 私有pod庫,整個podproject體積非常大。預設的Xcode 編譯行為尋找依賴的project進行編譯,並且是並行的。我們做了如下改動,加快主工程編譯速度:.去除了主工程對 Pods target的依賴編譯.取消上

pod install 報錯(git: error: unable to read SDK settings)問題解決

IOS "error: unable to read SDK settings" After I upgraded my MacBook to macOS Mojave, for every command executed in my Terminal I got er

解決 Pod install 問題:cannot load such file -- cfpropertylist

今天工程 pod install 時遇到報錯: LoadError - cannot load such file -- cfpropertylist /Users/alexbalyaev/.rvm/gems/ruby-2.3.0/gems/xcodeproj-1.4.2

pod 升級1.1.1後,pod install 後程序編譯報錯 ld: library not found for -lAFNetworking

首先確認podfile裡如下配置 platform:ios,'8.0' use_frameworks! target 'My App' do pod 'SDAutoLayout' pod 'AFNetworking' pod 'YTXAnimations'

Hibernate三種狀態,緩存,以及update更新問題

來講 clas 最大的 .cn lba ransient count 條件查詢 rate 一. Hibernate中對象的三種狀態 1. 瞬時狀態(transient) 當我們通過Java的new關鍵字來生成一個實體對象時,這時這個實體對象就處於自由狀態,此時該對象

solr 全量更新,導致cup過高

solr cup場景:小L最近遇到個solr更新的問題,由於solr全量更新發現更新速度特別慢,同時發現cup使用率特別高經過查詢 發現solr在頻繁GC,GC回收引發的CPU消耗,分析問題:全量更新solr之後會將大量數據進行寫操作,十分消耗內存,當數據更新時,Solr會對Cache進行重新的預熱,在這個時

加快compser installupdate的方法

http rep type repo onf 進入 update https date 加快compser install 和update的方法: 可以進入composer國內鏡像裏面進行參考 如下是修改composer.json文件來實現(在json配置的最後加上如下