這種教程爛大街了,不過我還是寫一寫,有利於我個人的生態平衡…… :-)
這篇文章主要講解安裝和使用,安裝和使用過程中遇到的問題(出錯)會記錄在CocoaPods使用異常及處理方式,歡迎前往補充
項目開發中,難免會遇到一些開發起來耗時間(or 棘手 or 難辦)的功能,那麼我就會訪問我的貼心小棉襖github,尋找是否已經存在一些符合(or not)項目需求的解決方案。
得益於github大神衆多,我往往能找到一些不錯的開源庫,然後暴力拖拽到項目當中,導入、引用、調試、成功、提交,哦也!(^-^)/
但當引用的第三方庫越來越多的時候,一些很尷尬的事情逐漸發生了:-(
1、庫文件過大、過多,svn/git commit and update太慢太卡啦~
2、庫文件的更新非常麻煩,尤其是使用svn做版本管理的時候,很容易commit失敗、update出現問題
3、囧rz 爲什麼從github下載的可以運行,導入到我的項目就不能了呢……哦,少了framework,少了其他的第三方庫……
4、還遇到兩個第三方庫同時引用了另一個庫,想想都是淚
……
所以這個時候,CocoaPods來了,官方的說法是:
CocoaPods是依賴於Swift和Objective-C Cocoa項目。它有近萬的庫,可以幫助你優雅地擴展您的項目。(☆_☆)
用了CocoaPods後你能告別很多煩惱。
OK,Let's start!
----------------INSTALL--------------------------------
打開終端(Terminal)
安裝CocoaPods的命令基於Ruby環境,並且需要管理員權限,so
$ sudo gem install cocoapods
如果出現
Fetching: cocoapods-core-0.37.2.gem (100%)
Successfully installed cocoapods-core-0.37.2
Fetching: xcodeproj-0.24.2.gem (100%)
Successfully installed xcodeproj-0.24.2
Fetching: cocoapods-try-0.4.5.gem (100%)
Successfully installed cocoapods-try-0.4.5
Fetching: cocoapods-trunk-0.6.1.gem (100%)
Successfully installed cocoapods-trunk-0.6.1
Fetching: cocoapods-0.37.2.gem (100%)
Successfully installed cocoapods-0.37.2
Parsing documentation for cocoapods-core-0.37.2
Installing ri documentation for cocoapods-core-0.37.2
Parsing documentation for xcodeproj-0.24.2
Installing ri documentation for xcodeproj-0.24.2
Parsing documentation for cocoapods-try-0.4.5
Installing ri documentation for cocoapods-try-0.4.5
Parsing documentation for cocoapods-trunk-0.6.1
Installing ri documentation for cocoapods-trunk-0.6.1
Parsing documentation for cocoapods-0.37.2
Installing ri documentation for cocoapods-0.37.2
5 gems installed
pod --version
然後你就能愉快的使用,反之,卸載命令
$ gem uninstall cocoapods
否則,請前往CocoaPods使用異常及處理方式查看錯誤原因,歡迎前往補充
因爲接下來要發一個公交app的系列文章(還稱不上教程(≧∇≦)),所以這裏就用高德地圖sdk來作爲示範
可以看看高德地圖sdk手動配置,2d/3d/search都需要的話,單單引入framework就要11個,作爲一個勵志成爲大神的男人,這種重複性的東西我是拒絕的……再簡單也拒絕……:P
so
我們來自動配置高德地圖sdk
----首先我們先了解如何判斷一個第三方庫是不是包含在CocoaPods源中------
----通過search命令(庫名不區分大小寫)----
pod search AMap3DMap
這裏搜索高德地圖的3d地圖庫,返回的結果是
-> AMap3DMap (2.5.1)
3D Map SDK for iOS by Autonavi.
pod 'AMap3DMap', '~> 2.5.1'
- Homepage: http://lbs.amap.com/api/ios-sdk/summary/ #庫的主頁 - 介紹
- Source: http://cache.amap.com/lbs/sdk/AMap_iOS_API_3DMap_Lib_V2.5.1.zip
- Versions: 2.5.1, 2.5.0, 2.4.2, 2.4.1, 2.4.0, 2.3.0 [master repo]
可以清楚的看到裏面包含了很多重要的信息,其中pod 'AMap3DMap', '~> 2.5.1'
就是關鍵的使用方法啦
----然後我們來給項目關聯CocoaPods-------
1、我創建了一個BUSDEMO項目,使用終端(vi命令)或文本編輯的方式在該目錄裏創建一個podfile文件(文本編輯創建的需要去掉擴展名)
2、通過終端(vi命令)或文本編輯器編輯podfile,輸入
platform :ios, '8.0' #這裏是備註,platform指的是ios平臺及最高版本,版本號可以省略
pod 'AMap3DMap', '~> 2.5.1' #這裏說明引用指定的庫名及版本號
pod 'AMapSearch' #版本號可以省略,默認使用最高版本
3、使用終端(cd命令)進入項目目錄
cd /Users/roy/Desktop/練習/bus/BUSDEMO
4、使用終端安裝CocoaPods相關的源
pod install
逐漸的出現以下內容
Analyzing dependencies
Downloading dependencies
Installing AMap3DMap (2.5.1)
Installing AMapSearch (2.5.0)
Generating Pods project
Integrating client project
[!] Please close any current Xcode sessions and use `BUSDEMO.xcworkspace` for this project from now on.
表示成功,最後告訴你從現在開始使用xxx.xcworkspace文件,就是這個傢伙
同時我們看到多出了幾個文件,Pods文件夾主要放第三方庫了,Podfile.lock這個以後再具體解說,這裏留個坑
----添加新的源或刪除已有的源-------
直接修改podfile文件,備註3d,添加2d
platform :ios #這裏是備註,platform指的是ios的最高版本號
#pod 'AMap3DMap', '~> 2.5.1' #這裏說明引用指定的庫名及版本號
pod 'AMapSearch' #版本號可以省略,默認使用最高版本
pod 'AMap2DMap' #添加一個新的源##########
使用終端(cd命令)進入項目目錄,並安裝pod install
(pod install如果一直卡着不動的話,就用pod install --verbose --no-repo-update命令試試)
結果
Analyzing dependencies
<span style="color:#cc0000;">Removing AMap3DMap</span>
Downloading dependencies
<span style="color:#009900;">Installing AMap2DMap (2.5.0)</span>
Using AMapSearch (2.5.0)
Generating Pods project
Integrating client project
結果顯示remove了3D源,installing了2D源,Using表示沒有修改
----如果庫有升級,則更新源-----
pod update
結果
<span style="color:#cc9933;">Update all pods</span>
Analyzing dependencies
Downloading dependencies
Using AMap2DMap (2.5.0)
Using AMapSearch (2.5.0)
Generating Pods project
Integrating client project
這裏沒有可更新的……
--------結尾------------------------
CocoaPods不止這麼簡單的功能,還有很多有待發掘,比如如何設置私有庫、獲取幫助文檔、podspec等等
這裏留個坑,以後慢慢填。