转自:http://www.cnblogs.com/dyingbleed/archive/2013/05/09/3069145.html

XMPPFramework

GitHub: https://github.com/robbiehanson/XMPPFramework

获取源代码

git clone https://github.com/robbiehanson/XMPPFramework.git

checkout XMPPFramework 一个最新的 branch

添加依赖

> 拷贝 <XMPPFramework>/Vendor/CocoaLumberjack 到项目根目录下,add files...,选择 CocoaLumberjack 文件夹

> 同样的步骤,拷贝 CocoaAsyncSocket 和 KissXML 并添加到项目中

CocoaAsyncSocket 依赖 CFNetwork.framework 和 Security.framework,在 TARGETS -> Build Phases -> Link Binary With Libraries 添加

KissXML 使用了 libxml2 解析 XML,所以

首先,我们需要在 TARGETS -> Build Phases -> Link Binary With Libraries 添加 libXML2.dylib

然后,在 TARGETS -> Build Settings -> Other Linker Flags 添加 -lxml2,TARGETS -> Build Settings -> Header Search Paths 添加 /usr/include/libxml2

> 拷贝 <XMPPFramework>/Vendor/libidn 到项目根目录下,添加静态库文件 libidn.a 和头文件 idn-int.h 和 stringprep.h

添加 XMPPFramework

拷贝源码目录下的 Authentication Categories Core 和 Utilities 到项目根目录下并添加到项目中

此外,需要添加动态连接库 libresolv.dylib ,在 TARGETS -> Build Phases -> Link Binary With Libraries 添加

添加扩展

你可以根据自己的需要,添加 <XMPPFramework>/Extensions 的扩展到项目中

你可能遇到的问题:

> "XMPPFramework.h" file not found

XMPPFramework.h 内容如下,可根据实际使用模块进行删改:

#import "XMPP.h"

// List the modules you're using here.

#import "XMPPReconnect.h"

#import "XMPPRoster.h"
#import "XMPPRosterCoreDataStorage.h" #import "XMPPvCardTempModule.h"
#import "XMPPvCardAvatarModule.h"
#import "XMPPvCardCoreDataStorage.h" #import "XMPPCapabilities.h"
#import "XMPPCapabilitiesCoreDataStorage.h" #import "XMPPMUC.h"
#import "XMPPRoomCoreDataStorage.h"

还有一些问题,是由于没有添加Extension需要的依赖库所产生的

可在 TARGETS -> Build Phases -> Link Binary With Libraries 添加

CoreData.framework SystemConfiguration.framework CoreLocation.framework

ARC 警告

XMPPFramework 使用 ARC,如果你的项目没有使用 ARC,build 之后你会得到许许多多的 ARC 警告。

不要忽视这些警告,它会导致你的程序因 memory leak 而崩溃……

Edit -> Refactor -> convert to Objective-C ARC,消灭这些警告!

参考: https://github.com/robbiehanson/XMPPFramework/wiki/GettingStarted_iOS

Android 开发讨论群:84778336 
iOS 开发讨论群:82873648


本作品采用知识共享署名-非商业性使用 3.0 许可协议进行许可。
转载请署名李震(博客地址:http://www.cnblogs.com/dyingbleed/),且不得用于商业目的。

【iOS XMPP】使用XMPPFramewok(一):添加XMPPFramework(XCode 4.6.2)的更多相关文章

  1. XMPP之ios即时通讯客户端开发-创建工程添加XMPPFramework及其他框架(三)

    XMPPFramework GitHub: https://github.com/robbiehanson/XMPPFramework 获取源代码 git clone https://github.c ...

  2. iOS - XMPP 的使用

    1.XMPP XMPP 是一个基于 Socket 通信的即时通讯的协议,它规范了即时通信在网络上数据的传输格式,比如登录,获取好友列表等等的格式.XMPP 在网络传输的数据是 XML 格式. 开发架构 ...

  3. iOS:XMPP即时聊天知识

    XMPP即时聊天框架:XMPPFramework   XMPP The Extensible Messaging and Presence Protocol(可扩展通讯和表示协议). 基于XML XM ...

  4. Cordova - 使用Cordova开发iOS应用实战3(添加Cordova控制台插件)

    Cordova - 使用Cordova开发iOS应用实战3(添加Cordova控制台插件) 前文介绍了通过 Safari 的 Web检查器,可以看到控制台输出的信息.但有时这样调试代码不太方便,如果在 ...

  5. [Unity3D][Vuforia][IOS]vuforia在unity3d中添加自己的动态模型,识别自己的图片,添加GUI,播放视频

    使用环境 unity3D 5 pro vuforia 4 ios 8.1(6.1) xcode 6.1(6.2) 1.新建unity3d工程,添加vuforia 4.0的工程包 Hierarchy中 ...

  6. iOS XMPP 通信协议实现 图形化直观感受

    第一次随笔,实在不知写点什么有用的东西,那就分享一下本人最近的研究所得吧! 是关于iOS-XMPP-通信协议的实现,具体代码比较复杂,三言两句也实在难表达清楚,网上已有很多关于iOS XMPP协议的讲 ...

  7. ios xmpp开发应用后台模式接收聊天信息处理方案

    ios xmpp开发应用后台模式接收聊天信息 最近在使用xmppframwork来实现一个聊天应用,碰到了一个问题,应用进入后台以后,就接收不到消息了: 怎么样才能使应用被切到后台时,应用中的网络连接 ...

  8. iOS xmpp协议实现聊天之openfire的服务端配置(一)

    今天弄这个openfire服务端的配置直接苦了一逼,只是好在最后最终配置好了.首先感谢@月光的尽头的博客给了我莫大的帮助. 切入正题,首先说一下iOS xmpp协议实现聊天openfireserver ...

  9. ios xmpp 发送语音图片解决方案

    ios xmpp 发送语音,图片解决方案,有需要的朋友可以参考下. 目前做IM多是用的xmpp. 因为项目需求需要实现语音和图片的发送. 发送语音图片有三种方法. 1,xmpp smack.文件传输方 ...

随机推荐

  1. having 与where 的异同点

    having 与where 的异同点: where针对表中的列发挥作用,查询数据 having对查询结果中的列发挥作用,筛选数据 #查询本店商品价格比市场价低多少钱,输出低200元以上的商品 ; // ...

  2. Mybatis-Dao层开发之Mapper接口

    Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法. Mapper接口开发 ...

  3. java开发微信模板消息推送

    发布时间:2018-12-12   技术:springboot+maven   概述 该demo主要涉及微信模板消息推送功能, 详细 代码下载:http://www.demodashi.com/dem ...

  4. Visual Studio 2015新添加宏

    这个宏是类似环境变量,比如$(ProjectDir) $(SolutionDir),这样的,我需要新添加一个变量宏,但是VS的GUI上貌似找不到新的变量的设置,但是Qt的VS插件可以设置$(QTDIR ...

  5. 解决sublime的中文乱码

    1.Sublime text 3 中文文件名显示方框怎么解决 在sublime text 3中,Preference, Settings-User,最后加上一行"dpi_scale" ...

  6. eclipse 找类的jar包方便工具

    经常在开发过程,因为使用到比较多的类库(jar文件),在开发时经常会找不到需要的类文件存放在哪个jar文件中,这时classlocator这个插件就带我们带来极大的方便,可以帮我很快速的找到我们需要的 ...

  7. Storage System and File System Courses

    I researched a lot about storage system classes given at good universities this year. This had two r ...

  8. 【RS】CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Collaborative Filtering-CoupledCF:在推荐系统深度协作过滤中学习显式和隐式的用户物品耦合

    [论文标题]CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Colla ...

  9. mysql 排序 oder by 和 使用hibernate 排序

    String sql="select * from sys_invitation where to_phone = '13000000000' order by create_time de ...

  10. 【LeetCode】217. Contains Duplicate (2 solutions)

    Contains Duplicate Given an array of integers, find if the array contains any duplicates. Your funct ...