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编译库。要做到这两点,在项目的编译设置中设置以下两条编译指令即可:
- Other Link Flags = -lxml2
- 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文档。