CocoaPodsios
打場子git
要先裝Ruby,而後在終端裏sudo gem install cocoapods,安裝cocoapods。若是半天沒反應,應該是被牆了,須要:vim
$ gem sources --remove https://rubygems.org/ //等有反應以後再敲入如下命令xcode
$ gem sources -a http://ruby.taobao.org/ruby
爲了驗證你的Ruby鏡像是而且僅是taobao,能夠用如下命令查看:spa
$ gem sources -l命令行
只有在終端中出現下面文字才代表你上面的命令是成功的:debug
*** CURRENT SOURCES ***版本控制
http://ruby.taobao.org/code
這時候,你再次在終端中運行:$ sudo gem install cocoapods
等上十幾秒鐘,CocoaPods就能夠在你本地下載而且安裝好了,再也不須要其餘設置。
使用
每一個項目只須要一個Podfile文件,只能是這個文件名,不能有後綴。在終端cd到項目所在的目錄,利用vim建立Podfile:vim Podifle
而後再Podfile文件中輸入如下文字(這只是一個例子,取決於項目須要)
platform :ios, '7.0'
pod "AFNetworking", '~> 2.0'
pod 'ReactiveCocoa'
pod 'SDWebImage', '~> 3.7.2'
pod 'FMDB', '~> 2.5'
pod 'Bugly'
在當前目錄,終端運行命令$ pod install 便可。
今後,打開項目就要用自動生成的.xcworkspace 打開,而不是以前的.xcodeproj文件。
經常使用命令
1.搜索類庫:$ pod search AFNetworking
2.在vim環境下,保存退出命令爲: :wq
3.取消正在執行的命令行爲:Crtl+C
注意點
1.若是有指定某個類庫的版本號,$ pod update 也只會更新到這個版本。
2.網上下載的項目,若是使用了CocoaPods,只要cd到項目所在的目錄,$ pod update便可。
3.若是執行pod install仍是pod update都卡在了Analyzing dependencies不動,緣由在於當執行以上兩個命令的時候會升級CocoaPods的spec倉庫,加一個參數能夠省略這一步,而後速度就會提高很多。加參數的命令以下:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
4. 當在update或install時遇到這個問題:
Unable to find a specification for `xxxxx (~> 1.x.x)` depended upon by Podfile.
只須要把當前Pod的目錄清理一下就好了。在終端執行如下命令:
pod repo remove master
pod setup
setup成功後執行install或update便可
5.關於 Podfile.lock
當你執行pod install以後,除了 Podfile 外,CocoaPods 還會生成一個名爲Podfile.lock的文件,Podfile.lock 應該加入到版本控制裏面,不該該把這個文件加入到.gitignore中。由於Podfile.lock會鎖定當前各依賴庫的版本,以後若是屢次執行pod install 不會更改版本,要pod update纔會改Podfile.lock了。這樣多人協做的時候,能夠防止第三方庫升級時形成你們各自的第三方庫版本不一致。
和git配合使用下的版本管理的注意點
若是一開始添加了FMDB,要commit的時候,除了Xcode自己幫咱們選中的,還須要本身選擇的有:黃色底的爲公共的,添加過一次,就不用再添加了,只會修改。
1. test2(wrokspace),選中這個,會連Workspace Settingsye 也選中(工程)
2. test2工程下Pods黃色文件下的Pods.debug.xcconfig Pods.release.xcconfig(配置)
3. Pods工程下的Project Settings 和Podfile(配置)
4. Pods工程下FMDB文件下的common文件夾,Support Files文件夾下的全部文件(類的相關文件)
5. Pods工程下Targets Support Files文件下Pods文件夾下的全部文件(支持文件)
6. 第二個大tab下的Podfile.lock(版本控制)
7. 第二個大tab下的Manifest.lock(版本控制)
8. 其餘的License.txt,或者readme能夠不用提交。
若是另一個開發人員又添加了SDWebImage,要commit的時候,還須要本身選擇的有:
1. Pods工程下SDWebImage文件下的core文件夾,Support Files文件夾下的全部文件(類的相關文件)
2. Pods工程下FMDB文件下的Support Files文件夾下的全部文件,由於這邊可能會多出一個FMDB-Private.xcconfig文件,也須要提交。若是之後又填加了一個類庫,其餘已有類庫又多出了一個xxx-Private.xcconfig文件,也須要提交。
3. 其餘的關於工程的文件,Xcode本身會選中。若是添加的第三方庫是xxx.framework,必定要進去第二個大tab,把framework裏面的文件都選擇全,第一個tab可能顯示你已經選上了,可是其實framework裏面的文件可能會漏掉,此時項目是沒法運行,會提示錯誤:linker command failed with exit code 1 (use -v to see invocation)