(八)即时通讯之XMPPFramework导入

XMPPFramework框架的导入有两种方式
1.通过cocopods进行配置,比较方便,但某些时候可能会配置不成功.
2.手动配置.需要导入XMPPFramework矿建并配置相关依赖以及一些处理,较为麻烦.

**下面介绍的就是手动配置XMPP框架 **

简介

在提供的Xcode示例项目中,包含有在iOS中使用XMPPFramework的演示项目。您可以在Xcode/iPhoneXMPP文件夹中找到它。该项目的设计并不是为了演示一个完整的商业应用,而仅是为了演示如何使用XMPPFramework框架,并提供有iOS平台上需要使用的具体代码。您可以随意修改及测试该项目,并浏览AppDelegate文件中的代码。提示,该示例程序仅使用了框架中的一小部分功能。
本文档提供了如何将XMPPFramework框架添加到iOS项目的详细说明,您也可以参照iPhoneXMPP项目中的具体引用。
提示:请按照以下步骤逐一执行,而不要省略或者跳过某个步骤。

  • 第一步
    使用源代码管理器检出最新版本的项目。默认的分支包含有最新稳定版本的代码。
    github地址:https://github.com/robbiehanson/XMPPFramework
    下载对应的压缩包并解压缩

  • 第二步
    尽管本框架包含有对其他项目的依赖,不过您已无需再使用git去分别克隆这些项目。在克隆XMPPFramework框架的同时,这些项目会被同时克隆并保存在Vendor文件夹中。接下来,我们将逐一确认每一个依赖,以确保在完成最后一步工作之后,能够正常编译项目。
    第一个依赖是CocoaLumberjack,这是XMPPFramework框架使用的日志框架。
    (有关日志框架的进一步信息,可以参见XMPPFramework的介绍文档,另外在Lumberjack的项目主页中也提供有大量的文档。)
    将Vendor/CocoaLumberjack复制并添加入Xcode项目。
    Lumberjack不包含任何子依赖或特殊要求的框架。
    现在,请确认您的项目可以正常编译。

  • 第三步
    第二个依赖是CocoaAsyncSocket,这是XMPPFramework框架使用的底层网络框架。
    将Vendor/CocoaAsyncSocket复制并添加入Xcode项目。
    要使用此依赖,需要将苹果的CFNetwork框架添加到项目。
    要使用此依赖,还需要将苹果的Security框架添加到项目。
    现在,请确认您的项目可以正常编译。

  • 第四步
    第三个依赖是KissXML,由于苹果并没有针对iOS提供NSXML类以处理NSXMLDocument、NSXMLElement、NSXMLNode,因此我们使用KissXML取而代之。
    将Vendor/KissXML复制并添加入Xcode项目。
    由于KissXML内部使用到libxml2。因此还需要告诉Xcode在哪里可以找到libxml2的头文件,并且在编译完成后链接libxml2编译库。要做到这两点,在项目的编译设置中设置以下两条编译指令即可:

  1. Other Link Flags = -lxml2
  2. Header Search Paths = /usr/include/libxml2
    执行完上述操作后,请确认您的项目可以正常编译。
  • 第五步
    第四个以及最后一个依赖是libidn。将以下文件添加到项目中:
    Vendor/libidn/idn-int.h
    Vendor/libidn/stringprep.h
    Vendor/libidn/libidn.a
    上述最后一个文件libidn.a是一个静态库,支持包括:x86*64、i386、ppc、armv6、armv7等多种架构。因而该文件的个头也不小,大约有1.7M。但是不用担心,编译器会在编译时仅提取架构所需的内容,并且只会提取被使用的那一部分,而由于框架中仅仅只用到了该静态库中很小的一部分内容。换言之,该静态库的使用不会明显增加您应用程序的大小!
    注释:libidn的源代码包含在libidn-1.15.tar.gz中。不过很显然,没有必要将其添加到项目之中。
    执行完上述操作后,请确认您的项目可以正常编译。

  • 第六步
    将以下文件夹复制并添加入Xcode项目:
    Authentication
    Categories
    Core
    Utilities
    另外,还需将libresolv.dylib添加至Xcode项目。
    执行完上述操作后,请确认您的项目可以正常编译。

大功告成!!!

至此,您已经准备好在项目中使用XMPPFramework框架了。后续的相关操作请参见:Intro to XMPPFramework文档。

你可能感兴趣的:((八)即时通讯之XMPPFramework导入)