iOS開發~CocoaPods使用詳細說明 cocoapods pod install 安裝報錯 is not used in any concrete target
iOS開發~CocoaPods使用詳細說明
2014-08-06 11:08 25320人閱讀 評論(12) 收藏 舉報 分類:一、概要
iOS開發時,專案中會引用許多第三方庫,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用來方便的統一管理這些第三方庫。
二、安裝
由於網上的教程基本都大同小異,但細節之處還不是很完善,所以藉機會在這裡補充下:
注:要使用CocoaPods,那就要下載安裝它,而下載安裝CocoaPods需要Ruby環境
1、Ruby環境搭建
當前安裝環境為Mac mini 10.8.5。Mac OS本身自帶Ruby,但還是更新一下保險,因為我第一次安裝在沒有更新Ruby的情況下就失敗了。
a 檢視下當前ruby版本:開啟終端輸入 ruby -v(確實安裝了,不過用這個版本接下來工作失敗了,所以更新下ruby)
[objc] view plain copy print ?
- ritekiMac-mini:PodTest lucky$ ruby -v
- ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
- ritekiMac-mini:PodTest lucky$
b 更新ruby
終端輸入如下命令(把Ruby映象指向taobao,避免被牆,你懂得)
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l (用來檢查使用替換映象位置成功)
[objc] view plain copy print ?
- ritekiMac-mini:~ lucky$ gem sources --remove https://rubygems.org/
- https://rubygems.org/ removed from sources
- ritekiMac-mini:~ lucky$ gem sources -a https://ruby.taobao.org/
- https://ruby.taobao.org/ added to sources
- ritekiMac-mini:~ lucky$ gem sources -l
- *** CURRENT SOURCES ***
終端輸入:sudo gem install cocoapods
- ritekiMac-mini:~ lucky$ sudo gem install cocoapods
- CHANGELOG:
- ## 0.32.1
- ##### Bug Fixes
- * Fixed the Podfile `default_subspec` attribute in nested subspecs.
- [Fabio Pelosin][irrationalfab]
- \ [#2050](https://github.com/CocoaPods/CocoaPods/issues/2050)
- Successfully installed cocoapods-0.32.1
- Installing ri documentation for cocoapods-0.32.1
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block
- Done installing documentation for cocoapods after 10 seconds
- 1 gem installed
這樣就下載安裝好了CocoaPods
3、使用CocoaPods
a 新建一個專案,名字PodTest
b 終端中,cd到專案總目錄(注意:包含PodTest資料夾、PodTest.xcodeproj、PodTestTest的那個總目錄)
[objc] view plain copy print ?
- cd /Users/lucky/Desktop/PodTest
c 建立Podfile(配置檔案)
接著上一步,終端輸入 vim Podfile
鍵盤輸入 i,進入編輯模式,輸入
platform :ios, '7.0'
pod 'MBProgressHUD', '~> 0.8'
然後按Esc,並且輸入“ :”號進入vim命令模式,然後在冒號後邊輸入wq
注意:鍵盤輸入 :後,才能輸入wq。回車後發現PodTest專案總目錄中多一個Podfile檔案
激動人心的時刻到了:確定終端cd到專案總目錄,然後輸入 pod install,等待一會,大約3分鐘。
檢視專案根目錄:
注意:現在開啟專案不是點選 PodTest.xodeproj了,而是點選 PodTest.xcworkspace
開啟專案後看到專案結構並且測試一下:
執行結果:
補充:
1、CocoaPods的基本安裝及使用都詳細的說明了,但還有一些補充,當需要同時匯入多個第三方時候怎麼辦 ?
這就需要修改Podfile了,就是用vim編輯的那個儲存在專案根目錄中的檔案,修改完了Podfile檔案,需要重新執行一次pod install命令。
例如:
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'AFNetworking', '~> 2.0'
終端輸入命令:pod search UI
瘋了了,我怎麼查詢這麼大眾的關鍵字,好多庫~~
然後重新編輯Podfile檔案,按照之前的步驟,把更多的庫都匯入專案!
本部落格盜竊自阿福的部落格,地址:http://blog.csdn.net/lizhongfu2013/article/details/26384029
現在,你的所有第三方庫都已經下載完成並且設定好了編譯引數和依賴,你只需要記住如下 2 點即可:
- 使用 CocoaPods 生成的 .xcworkspace 檔案來開啟工程,而不是以前的 .xcodeproj 檔案。
- 每次更改了 Podfile 檔案,你需要重新執行一次
pod update
命令。
關於 Podfile.lock
當你執行pod install
之後,除了 Podfile 外,CocoaPods 還會生成一個名為Podfile.lock
的檔案,Podfile.lock 應該加入到版本控制裡面,不應該把這個檔案加入到.gitignore
中。因為Podfile.lock
會鎖定當前各依賴庫的版本,之後如果多次執行pod install
不會更改版本,要pod update
才會改Podfile.lock
了。這樣多人協作的時候,可以防止第三方庫升級時造成大家各自的第三方庫版本不一致。
CocoaPods 的這篇 官方文件 也在What is a Podfile.lock
一節中介紹了Podfile.lock
的作用,並且指出:
// 唐巧 關於pod 的技術部落格
http://blog.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/
cocoapods pod install 安裝報錯 is not used in any concrete target
標籤: cocoa podspod install安裝報錯is not used in any c 2016-01-07 20:49 1660人閱讀 評論(1) 收藏 舉報低版本的cocoa pods在編寫Podfile檔案時這樣寫就可以了
platform :ios, '8.0'
pod 'AFNetworking'
高版本的cocoa pods在編寫Podfile檔案必須這樣寫
platform :ios, '8.0'
target "targetName" do
pod 'AFNetworking'
end
如果cocoapods安裝沒有安裝成功:
嘗試:刪除.cocoapods目錄,在終端輸入以下命令:
cd ~/.cocoapods/
sudo -rm -rf ~/.cocoapods/
然後,重新下載安裝,在終端輸入以下命令:
pod setup
-bash:pod:command not found 怎麼解決
1、sudo gem install -n /usr/local/bin cocoapods 之後pod命令可以使用了。 2、如果pod update / pod install 卡在: Updating local specs repositories 3、等待即可,或者可以使用 “pod install --verbose --no-repo-update” 進行下載,原因可能x被牆。 pod install --verbose --no-repo-update
低版本的cocoa pods在編寫Podfile檔案時這樣寫就可以了
platform :ios, '8.0'
pod 'AFNetworking'
高版本的cocoa pods在編寫Podfile檔案必須這樣寫
platform :ios, '8.0'
target "targetName" do
pod 'AFNetworking'
end