(八)即时通讯之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文档。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,194评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,058评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,780评论 0 346
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,388评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,430评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,764评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,907评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,679评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,122评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,459评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,605评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,270评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,867评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,734评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,961评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,297评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,472评论 2 348

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,059评论 4 62
  • 在绿衣少女倒下之后,天青雪走到了她的身前,蹲下,然后在她的身上摸索起来。 天青雪不知道到底是谁要杀她,所以只好在这...
    霜月落花阅读 244评论 0 0
  • 悖论就是那个让你画个够,又让你画个没够的东西。 加上阴影仿佛华丽转身。 没有画出,那个暗线也没有关系,只能让你更期待……
    M有如果阅读 339评论 3 9