你开发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编译的查找路径,经过这种方式将全部的第三方包来引入到项目中。