# [Xcode]CocoaPods介紹
---
### 什麼是CocoaPods
之前在引用功能套件或者Framework時,需要慢慢的import到專案裡面,一旦數量越來越多,就得一個一個慢慢import,實在很麻煩。
或者是外部套件有更新,還得自己做更換(或者根本不知道套件有更新)
cocoapods就是一套套件管理工具,輕鬆的幫我們管理這些套件,省去了設置以及更新套件的時間
---
### 安裝CocoaPods
---
1. 開啟Terminal,輸入`sudo gem update --system`先確認電腦中的RubyGems是最新的
```javascript=
$ sudo gem update --system
```

---
2. 接下來安裝Cocopods,輸入`sudo gem install cocoapods`
```javascript=
$ sudo gem install cocoapods
```

若Mac OS是在El Capitan(10.11)時,可能會出現
`Operation not permitted - /usr/bin/xcodeproj`錯誤
```javascript=
// 解決方法一:(此方法重開Terminal,會找不到cocopods)
$ mkdir -p $HOME/Software/ruby
$ export GEM_HOME=$HOME/Software/ruby
$ gem install cocoapods
[...]
$ export PATH=$PATH:$HOME/Software/ruby/bin
$ pod --version
// 解決方法二:(此方法比較好)
$ sudo gem install -n /usr/local/bin cocoapods
$ pod setup
```
解決方法可參照:**[CocoaPods討論區解法](https://github.com/CocoaPods/CocoaPods/issues/3692)**
---
3. 在Xcode專案中新增"Podfile"檔案並寫入要安裝之套件內容
---
4. 輸入以下內容`TargetName依據各專案自定義`
```javascript=
platform :ios, '7.0'
target "TargetName" do
pod 'AFNetworking'
pod 'MBProgressHUD', '~> 0.9.1'
end
```
> [color=red]套件後的版號可以接不同的參數->[官方介紹](https://guides.cocoapods.org/using/the-podfile.html)
```javascript=
//指定0.5.1版本
pod 'AFNetworking', '0.5.1'
//小於或等於0.5.1的版本
pod 'AFNetworking', '<= 0.5.1'
//大於或等於0.5.1版本
pod 'AFNetworking', '>= 0.5.1'
//會安裝 >= 0.1.2 到 0.1.x,也就是 < 0.2以下的
pod 'AFNetworking', '~> 0.1.2'
//本地端
pod 'AFNetworking', :path => '~/Documents/AFNetworking'
//Git 指定master
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git'
//Git 指定branch
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :branch => 'dev'
//Git 指定tag
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'
//Git 指定版號
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :commit => '082f8319af'
```
---
5. 存檔後,開啟終端機,CD到Podfile的目錄下執行`pod install(若加上 -verbose參數,會顯示安裝過程)`

---
6. 安裝完成後專案目錄下會產生`Pods`、`Podfile.lock`、`{project name}.xcworkspace`檔案,現在就可以開啟`{project name}.xcworkspace`開始開發了!
---
###### tags: `xcode` `cocoapods`