CocoaPods是Xcode上的依賴管理工具。官網:https://cocoapods.org/。ios
若是不使用依賴管理工具,那麼當使用第三方庫的時候就會苦不堪言。你須要把第三方庫的源代碼拷貝到工程中,若是這些庫自己還有其它framework的依賴關係,那麼還須要手動倒入。尤爲是未來有更新的時候,更加的麻煩。可是使用了CocoaPods之後,這些工做CocoaPods均可以幫你完成。git
CocoaPods是用Ruby來Build的,因此用Ruby的命令就能夠進行安裝。Mac OSX自己自帶Ruby。在terminal裏就能完成安裝。若是你的gem版本比較低,能夠在terminal裏輸入以下命令行來更新Ruby:github
$ sudu gem update --system
須要輸入sudu的密碼。xcode
咱們使用Ruby的gem命令,來安裝CocoaPods,敲入以下命令行:安全
$ sudo gem install cocoapods
而後須要輸入sudo
的密碼,接着就開始安裝了。ruby
若是你在國內,極可能會遇到下圖中的錯誤:bash
Could not find a valid gem 'cocoapods' (>=0), here is why: Unable to download data from https://rubygems.org/ -Errno: ECONNRESET: Connection reset by peer - SSL_connect (https://rubygems.org/latest_specs.4.8.gz)
這是由於,Ruby的軟件源(rubygems.org)使用的是亞馬遜的雲服務,而亞馬遜的雲服務被屏蔽了。因此咱們要加個源。在terminal裏輸入以下命令行:服務器
$ gem sources --add http://rubygems.org/
輸入以後,會提示你https的比http更加安全,不用管,再次執行安裝命令行進行安裝。app
固然,若是原來的https源不須要了,也能夠remove掉:工具
$ gem sources --remove https://rubygems.org/
此外,若是不想使用http://rubygems.org/的源,在國內的淘寶也有相應的源,能夠加入淘寶的源:
$ gem sources --add http://ruby.taobao.org/
源添加刪除之後,能夠查看一下如今的源都有哪些:
$ gem sources -l
相應的源就會一一羅列出來,能夠檢查一下加的對不對。
你也能夠經過命令行來創建CocoaPods的Repo,在terminal裏輸入:
$ pod setup
會顯示「Setting up CocoaPods master repo」,此時,正在 ~/.cocoapods/路徑下創建Repo。能夠cd
到這個路徑下,用命令行du -sh *
來查看下載進度。
若是速度比較慢,也許是由於Podspec的索引文件比較大,而Podspec的文件都在github上。國內有個好心人akinliu作了兩個鏡像,一個在GitCafe上,一個在OSChina上。這兩個服務器都在國內,會比較快。能夠這樣從新設置CocoaPods的鏡像:
pod repo remove master pod repo add master https://gitcafe.com/akuandev/Specs.git pod repo update
把https://gitcafe.com/akuandev/Specs.git
換成http://git.oschina.net/akuandev/Specs.git
就是OSChina上的鏡像了。
首先要創建一個文本文件,起名叫Podfile,不須要任何的後綴。在文件裏填寫以下:
platform :ios, '8.0' use_frameworks! target 'YourApp' do pod 'AFNetworking', '~> 2.5' pod 'ORStackView', '~> 2.0' pod 'SwiftyJSON', '~> 2.1' end
platform
表明CocoaPods應用的平臺,這裏就是8.0的iOS。YourApp
就是你的工程的名字,AFNetworking
、ORStackView
和SwiftyJSON
都是你須要倒入的庫。
而後把這個文件copy到YourApp
的根目錄下。
在terminal裏,首先先cd
到YourApp
的根目錄,而後輸入:
$ pod install
這樣,Podfile文件中所羅列的所有的第三方的庫都已經自動設置好了依賴和編譯參數,不須要作額外的操做了。
能夠用appledoc,讓CocoaPods自動生成第三方庫的幫助文檔,在Xcode中,當按住option鍵單擊類名或方法名的時候,就能夠顯示幫助信息。
在terminal中運行下列命令行完成安裝:
$ brew install appledoc
若是brew版本太低,能夠運行:
$ brew update
來更新。
可是,須要注意四點:
每次再打開這個工程,不能運行原來的.xcodeproj文件,而是.xcworkspace文件來打開工程。能夠cd
到YourApp
的根目錄,而後輸入:
$ open YourApp.xcworkspace
一旦修改了Podfile文件,就須要從新運行一下pod update
命令。
install之後,會在工程的根目錄下生成一個Podfile.lock的文件,這個不能check in,須要在git的ignore文件中添加一下。由於這個文件會鎖定第三方庫的依賴版本,即便執行pod install
也不會修改其版本,只有執行pod update
才能夠。因此不check in方便多人協做升級第三份庫的依賴版本。
能夠不更新podspec。由於每次運行pod install
和pod update
的時候,默認會先更新一次podspec索引。每次運行着兩個命令行時,能夠帶上不更新索引的參數:
$ pod install --no-repo-update $ pod update --no-repo-update
只須要在terminal裏輸入:
$ pod search JSON
就會羅列出所有符合條件的第三方開源庫。JSON
爲你要找的關鍵字。
咱們能夠安裝私有的pod,在terminal裏輸入:
$ pod 'MyPod', :podspec => 'https://yourPodAddress/myPod.podspec'
$ pod spec create Peanut $ edit Peanut.podspec $ pod spec lint Peanut.podspec
建立了一個Peanut.podspec的文件,而後修改其內容。
CocoaPods首先建立了一個名爲Pods的工程,而後將所有的依賴庫都放在裏面。而後Pods工程會生成一個libPods.a的文件,讓主工程依賴libPods.a文件。此外,CocoaPods還提供了一個Pods-resources.sh的bash腳本,這個腳本每次工程編譯的時候都會運行,把第三方庫的各類資源複製到目標目錄中。最後,CocoaPods經過Pods.xcconfig文件在編譯時設置全部的依賴和參數。
CocoaPods官網文檔 https://cocoapods.org/
《iOS開發進階》