CocoaPods
打場子
要先裝Ruby疲吸,然后在終端里sudo gem install cocoapods富腊,安裝cocoapods。如果半天沒反應淤袜,應該是被墻了,需要:
$ gem sources --remove https://rubygems.org/? ? //等有反應之后再敲入以下命令
$ gem sources -a http://ruby.taobao.org/
為了驗證你的Ruby鏡像是并且僅是taobao衰伯,可以用以下命令查看:
$ gem sources -l
只有在終端中出現下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
http://ruby.taobao.org/
這時候铡羡,你再次在終端中運行:$ sudo gem install cocoapods
等上十幾秒鐘,CocoaPods就可以在你本地下載并且安裝好了意鲸,不再需要其他設置烦周。
使用
每個項目只需要一個Podfile文件尽爆,只能是這個文件名,不能有后綴读慎。在終端cd到項目所在的目錄漱贱,利用vim創(chuàng)建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環(huán)境下,保存退出命令為: :wq
3.取消正在執(zhí)行的命令行為:Crtl+C
注意點
1.如果有指定某個類庫的版本號蚂且,$ pod update 也只會更新到這個版本配猫。
2.網上下載的項目,如果使用了CocoaPods杏死,只要cd到項目所在的目錄泵肄,$ pod update即可。
3.如果執(zhí)行pod install還是pod update都卡在了Analyzing dependencies不動淑翼,原因在于當執(zhí)行以上兩個命令的時候會升級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的目錄清理一下就行了冯丙。在終端執(zhí)行以下命令:
pod repo remove master
pod setup
setup成功后執(zhí)行install或update即可
5.關于 Podfile.lock
當你執(zhí)行pod install之后,除了 Podfile 外遭京,CocoaPods 還會生成一個名為Podfile.lock的文件胃惜,Podfile.lock 應該加入到版本控制里面,不應該把這個文件加入到.gitignore中哪雕。因為Podfile.lock會鎖定當前各依賴庫的版本船殉,之后如果多次執(zhí)行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可以不用提交。
如果另外一個開發(fā)人員又添加了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)