你開發iOS的方式仍是石器時代嗎?在這個世界上並非全部的軟件開發人員都是碼農。在這個世界上有不少的geek存在他們爲這個語言的發展作出了很大的貢獻。如今隨着iOS開發者的曾多也就出現了iOS程序猿提供的依賴管理工具或者也能夠叫中央代碼倉庫這個工具叫作Cocoapods。css
咱們在iOS開發中會常常用到不少第三方的開源庫,從而簡便咱們的開發 github上提供了很是多的庫給咱們使用。咱們常常是這麼去使用的首先下載下咱們所需的庫文件而後手動的添加到咱們本身的工程文件裏。這樣作的缺點是你的這個庫和版本控制失去了聯繫若是庫升級你根本不知道。固然國內開發者不少都在用老版本的庫。更本不知道庫還有升級這麼一說。要是你真心以爲第三方庫沒有更新的必要的話這篇blog你也就沒有看下去的必要了。也有的人更新第三方庫的方式是庫更新了從新再作copy一遍。ios
CocoaPods是Objective-C項目中最好用的第三方依賴包管理工具.你要作的很簡單隻要安裝好後在本身的iOS項目下面創建一個podfile配置文件,在裏面協商你要那些庫CocoaPods就會幫你搞定一切。git
好了廢話就說這麼多了下面咱們進入正題CocoaPods是ruby gem因此安裝起來會很是簡單蘋果自帶ruby.首先你得ruby -v 和gem -v 去查看下你得版本若是低於2.0得話會安裝得時候報錯github
$ sudo gem install cocoapods $ pod setup
這樣就安裝結束了。而後就可使用了。json
你能夠經過vim
pod search XXXX(來查找你所須要得庫)
好比查找一個咱們最經常使用得json庫api
~ pod search json -> AFJSONPRequestOperation (1.0.0) AFNetworking Extension for the JSONP format. pod 'AFJSONPRequestOperation', '~> 1.0.0' - Homepage: https://github.com/acerbetti/AFJSONPRequestOperation - Source: https://github.com/acerbetti/AFJSONPRequestOperation.git - Versions: 1.0.0 [master repo] -> AFJSONRPCClient (0.4.0) A JSON-RPC client build on AFNetworking. pod 'AFJSONRPCClient', '~> 0.4.0' - Homepage: https://github.com/AFNetworking/AFJSONRPCClient - Source: https://github.com/AFNetworking/AFJSONRPCClient.git - Versions: 0.4.0, 0.3.1, 0.3.0 [master repo] -> AnyJSON (0.1.0) Encode / Decode JSON by any means possible. pod 'AnyJSON', '~> 0.1.0' - Homepage: https://github.com/mattt/AnyJSON - Source: https://github.com/mattt/AnyJSON.git - Versions: 0.1.0, 0.0.1 [master repo] -> ARSafeJSON (0.0.7) ARSafeJSON is a small library that will strip all occurences of NSNull from a JSON of any depth. pod 'ARSafeJSON', '~> 0.0.7' - Homepage: https://bitbucket.org/antoine_r/arsafejson - Source: https://bitbucket.org/antoine_r/arsafejson.git - Versions: 0.0.7, 0.0.3 [master repo] -> Collection-JSON-ObjC (1.0.1) Collection+JSON parser for Objective-C. pod 'Collection-JSON-ObjC', '~> 1.0.1' - Homepage: https://github.com/chrissearle/Collection-JSON-ObjC - Source: https://github.com/chrissearle/Collection-JSON-ObjC.git - Versions: 1.0.1 [master repo] -> FXJSON (1.1) Lightweight, ARC-friendly JSON library, supporting both DOM and SAX style parsing. pod 'FXJSON', '~> 1.1' - Homepage: https://github.com/nicklockwood/FXJSON - Source: https://github.com/nicklockwood/FXJSON.git - Versions: 1.1 [master repo] -> GDJson (0.3.0) J2ObjC implementation of GWT Elemental JSON library. pod 'GDJson', '~> 0.3.0' - Homepage: https://github.com/goodow/realtime - Source: https://github.com/goodow/GDJson.git - Versions: 0.3.0 [master repo] -> jsoncpp (0.6.0.rc2) jsoncpp is an implementation of a JSON (http://json.org) reader and writer in C++. pod 'jsoncpp', '~> 0.6.0.rc2' - Homepage: http://jsoncpp.sourceforge.net/ - Source: https://svn.code.sf.net/p/jsoncpp/code/tags/jsoncpp/0.6.0-rc2/ - Versions: 0.6.0.rc2 [master repo] -> JSONJoy (0.0.2) Makes JSON a joy to use pod 'JSONJoy', '~> 0.0.2' - Homepage: https://github.com/daltoniam/JSONJoy - Source: https://github.com/daltoniam/JSONJoy.git - Versions: 0.0.2, 0.0.1 [master repo] -> JSONKit (1.5pre) A Very High Performance Objective-C JSON Library. pod 'JSONKit', '~> 1.5pre' - Homepage: https://github.com/johnezang/JSONKit - Source: https://github.com/johnezang/JSONKit.git - Versions: 1.5pre, 1.4 [master repo] -> JsonLite (1.1.0) High performance and low memory footprint JSON parser for mobile/embedded systems pod 'JsonLite', '~> 1.1.0' - Homepage: https://github.com/amamchur/jsonlite - Source: https://github.com/amamchur/jsonlite.git - Versions: 1.1.0 [master repo] -> JSONModel (0.10.0) Magical Data Modelling Framework for JSON. Create rapidly powerful, atomic and smart data model classes. pod 'JSONModel', '~> 0.10.0' - Homepage: http://www.jsonmodel.com - Source: https://github.com/icanzilb/JSONModel.git - Versions: 0.10.0, 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.4, 0.8.2, 0.8.1 [master repo] -> JSONSyntaxHighlight (1.0.0) Add syntax highlighting to JSON objects in Objective C for both Cocoa and iOS without using HTML. pod 'JSONSyntaxHighlight', '~> 1.0.0' - Homepage: https://github.com/bahamas10/JSONSyntaxHighlight - Source: https://github.com/bahamas10/JSONSyntaxHighlight.git - Versions: 1.0.0 [master repo] -> MTJSONDictionary (0.0.4) An NSDictionary category for when you're working with it converting to/from JSON. DEPRECATED, use MTJSONUtils instead. pod 'MTJSONDictionary', '~> 0.0.4' - Homepage: https://github.com/mysterioustrousers/MTJSONDictionary.git - Source: https://github.com/mysterioustrousers/MTJSONDictionary.git - Versions: 0.0.4, 0.0.3, 0.0.2 [master repo] -> MTJSONUtils (0.1.1) An NSObject category for working with JSON. pod 'MTJSONUtils', '~> 0.1.1' - Homepage: https://github.com/mysterioustrousers/MTJSONUtils.git - Source: https://github.com/mysterioustrousers/MTJSONUtils.git - Versions: 0.1.1, 0.1.0, 0.0.1 [master repo] -> PKJSONSocket (0.0.3) Simplified socket networking based on CocoaAsynSocket. Enabling direct JSON messaging between devices. pod 'PKJSONSocket', '~> 0.0.3' - Homepage: https://github.com/pkluz/PKJSONSocket - Source: https://github.com/pkluz/PKJSONSocket.git - Versions: 0.0.3, 0.0.2, 0.0.1 [master repo] -> RDHJSONObjectSerialisation (0.5.0) Simple JSON serialisation for any custom NSObject based on its declared properties. pod 'RDHJSONObjectSerialisation', '~> 0.5.0' - Homepage: https://github.com/rhodgkins/RDHJSONObjectSerialisation - Source: https://github.com/rhodgkins/RDHJSONObjectSerialisation.git - Versions: 0.5.0 [master repo] -> SBJson (3.2) This library implements strict JSON parsing and generation in Objective-C. pod 'SBJson', '~> 3.2' - Homepage: http://stig.github.com/json-framework/ - Source: https://github.com/stig/json-framework.git - Versions: 3.2, 3.1.1, 3.1, 3.0.4, 2.2.3 [master repo] -> SDJSONPrettyPrint (0.0.1) Produces human-friendly JSON, which you can use for logging or debugging purposes. pod 'SDJSONPrettyPrint', '~> 0.0.1' - Homepage: https://github.com/tyrone-sudeium/SDJSONPrettyPrint - Source: https://github.com/tyrone-sudeium/SDJSONPrettyPrint.git - Versions: 0.0.1 [master repo] -> SEJSONViewController (0.1.0) Easily browse JSON content. pod 'SEJSONViewController', '~> 0.1.0' - Homepage: https://github.com/SergioEstevao/SEJSONControllerView - Source: https://github.com/SergioEstevao/SEJSONViewController.git - Versions: 0.1.0 [master repo] -> SVJsonSchemaValidator (0.0.7) Simple JSON Validator for Objective-C. pod 'SVJsonSchemaValidator', '~> 0.0.7' - Homepage: https://bitbucket.org/nut_code_monkey/jsonschemavalidator - Source: https://nut_code_monkey@bitbucket.org/nut_code_monkey/jsonschemavalidator.git - Versions: 0.0.7, 0.0.6, 0.0.4, 0.0.3, 0.0.2 [master repo] -> TouchJSON (1.1) A humane JSON Objective-C un-framework. (TouchJSON has been deprecated - see README). pod 'TouchJSON', '~> 1.1' - Homepage: https://github.com/touchcode/ - Source: https://github.com/TouchCode/TouchJSON.git - Versions: 1.1, 1.0 [master repo] -> VeriJSON (0.1.1) An Objective-C library for verifying JSON against a pattern-based schema. pod 'VeriJSON', '~> 0.1.1' - Homepage: https://bitbucket.org/dcutting/verijson - Source: https://bitbucket.org/dcutting/verijson - Versions: 0.1.1, 0.1.0 [master repo]
➜ ~ruby
首先經過終端進入工程文件創建podfile文件socket
touch Podfile
vim Podfile
而後你能夠在podfile文件中添加你所須要的庫的名稱和版本svn
platform :ios, '6.0' pod 'JSONKit', '~> 1.5pre' wq!(保存退出)
而後在執行
pod install
注意 你每次更改完Podfile文件後都要執行pod install 作完這些後你就能夠在你的工程目錄下看見一個後綴爲.xcworkspace你寫項目打開這個就OK了。打開看之後會發現其實cocoapods作了一個事情就是他把第三方庫都編譯成了一個庫文件。而後你的項目中去包含頭文件,libPods.a被做爲framework集成到目標項目。Pods.xcconfig 中配置了XCode編譯的查找路徑,經過這種方式將全部的第三方包來引入到項目中。