zoukankan      html  css  js  c++  java
  • iOS开发之CocoaPods的使用

    你开发iOS的方式还是石器时代吗?在这个世界上并不是所有的软件开发人员都是码农。在这个世界上有很多的geek存在他们为这个语言的发展做出了很大的贡献。现在随着iOS开发者的曾多也就出现了iOS程序猿提供的依赖管理工具或者也可以叫中央代码仓库这个工具叫做Cocoapods。

    iOS石器时代的开发方式

    我们在iOS开发中会经常用到很多第三方的开源库,从而简便我们的开发 github上提供了非常多的库给我们使用。我们经常是这么去使用的首先下载下我们所需的库文件然后手动的添加到我们自己的工程文件里。这样做的缺点是你的这个库和版本控制失去了联系如果库升级你根本不知道。当然国内开发者很多都在用老版本的库。更本不知道库还有升级这么一说。要是你真心觉得第三方库没有更新的必要的话这篇blog你也就没有看下去的必要了。也有的人更新第三方库的方式是库更新了重新再做copy一遍。

    CocoaPods的使用

    CocoaPods是Objective-C项目中最好用的第三方依赖包管理工具.你要做的很简单只要安装好后在自己的iOS项目下面建立一个podfile配置文件,在里面协商你要那些库CocoaPods就会帮你搞定一切。

    CocoaPods的安装和使用

    好了废话就说这么多了下面我们进入正题CocoaPods是ruby gem所以安装起来会非常简单苹果自带ruby.首先你得ruby -v 和gem -v 去查看下你得版本如果低于2.0得话会安装得时候报错

    安装
     $ sudo gem install cocoapods
    $ pod setup

    这样就安装结束了。然后就可以使用了。

    查找

    你可以通过

     pod search XXXX(来查找你所需要得库)

    比如查找一个我们最常用得json库

    ~  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]

    ➜ ~

    使用

    首先通过终端进入工程文件建立podfile文件

      touch Podfile
    vim Podfile

    然后你可以在podfile文件中添加你所需要的库的名称和版本

         platform :ios, '6.0'
    pod 'JSONKit', '~> 1.5pre'
    wq!(保存退出)

    然后在执行

       pod install

    注意 你每次更改完Podfile文件后都要执行pod install
    做完这些后你就可以在你的工程目录下看见一个后缀为.xcworkspace你写项目打开这个就OK了。打开看以后会发现其实cocoapods做了一个事情就是他把第三方库都编译成了一个库文件。然后你的项目中去包含头文件,libPods.a被作为framework集成到目标项目。Pods.xcconfig 中配置了XCode编译的查找路径,通过这种方式将所有的第三方包来引入到项目中。

  • 相关阅读:
    MMORPG 游戏服务器端设计转载
    OpenFileMapping失败 原因ERROR_FILE_NOT_FOUND
    让程序在崩溃时体面的退出转
    [c\C++]线程函数的比较
    VS2005 2008 2010字体颜色配置方案
    用文件映射(File Mapping)实现进程间内存共享
    [Debug]通过LeakDiag查看内存泄漏
    线程函数的设计以及MsgWaitForMultipleObjects函数的使用要点 转
    VC++ 中使用内存映射文件处理大文件
    透视投影
  • 原文地址:https://www.cnblogs.com/hanjun/p/3765277.html
Copyright © 2011-2022 走看看