【iOS XMPP】使用XMPPFramewok(一):添加XMPPFramework(XCode 4.6.2)
转自: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
iOS 开发讨论群:82873648
本作品采用知识共享署名-非商业性使用 3.0 许可协议进行许可。
转载请署名李震(博客地址:http://www.cnblogs.com/dyingbleed/),且不得用于商业目的。
【iOS XMPP】使用XMPPFramewok(一):添加XMPPFramework(XCode 4.6.2)的更多相关文章
- XMPP之ios即时通讯客户端开发-创建工程添加XMPPFramework及其他框架(三)
XMPPFramework GitHub: https://github.com/robbiehanson/XMPPFramework 获取源代码 git clone https://github.c ...
- iOS - XMPP 的使用
1.XMPP XMPP 是一个基于 Socket 通信的即时通讯的协议,它规范了即时通信在网络上数据的传输格式,比如登录,获取好友列表等等的格式.XMPP 在网络传输的数据是 XML 格式. 开发架构 ...
- iOS:XMPP即时聊天知识
XMPP即时聊天框架:XMPPFramework XMPP The Extensible Messaging and Presence Protocol(可扩展通讯和表示协议). 基于XML XM ...
- Cordova - 使用Cordova开发iOS应用实战3(添加Cordova控制台插件)
Cordova - 使用Cordova开发iOS应用实战3(添加Cordova控制台插件) 前文介绍了通过 Safari 的 Web检查器,可以看到控制台输出的信息.但有时这样调试代码不太方便,如果在 ...
- [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中 ...
- iOS XMPP 通信协议实现 图形化直观感受
第一次随笔,实在不知写点什么有用的东西,那就分享一下本人最近的研究所得吧! 是关于iOS-XMPP-通信协议的实现,具体代码比较复杂,三言两句也实在难表达清楚,网上已有很多关于iOS XMPP协议的讲 ...
- ios xmpp开发应用后台模式接收聊天信息处理方案
ios xmpp开发应用后台模式接收聊天信息 最近在使用xmppframwork来实现一个聊天应用,碰到了一个问题,应用进入后台以后,就接收不到消息了: 怎么样才能使应用被切到后台时,应用中的网络连接 ...
- iOS xmpp协议实现聊天之openfire的服务端配置(一)
今天弄这个openfire服务端的配置直接苦了一逼,只是好在最后最终配置好了.首先感谢@月光的尽头的博客给了我莫大的帮助. 切入正题,首先说一下iOS xmpp协议实现聊天openfireserver ...
- ios xmpp 发送语音图片解决方案
ios xmpp 发送语音,图片解决方案,有需要的朋友可以参考下. 目前做IM多是用的xmpp. 因为项目需求需要实现语音和图片的发送. 发送语音图片有三种方法. 1,xmpp smack.文件传输方 ...
随机推荐
- having 与where 的异同点
having 与where 的异同点: where针对表中的列发挥作用,查询数据 having对查询结果中的列发挥作用,筛选数据 #查询本店商品价格比市场价低多少钱,输出低200元以上的商品 ; // ...
- Mybatis-Dao层开发之Mapper接口
Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法. Mapper接口开发 ...
- java开发微信模板消息推送
发布时间:2018-12-12 技术:springboot+maven 概述 该demo主要涉及微信模板消息推送功能, 详细 代码下载:http://www.demodashi.com/dem ...
- Visual Studio 2015新添加宏
这个宏是类似环境变量,比如$(ProjectDir) $(SolutionDir),这样的,我需要新添加一个变量宏,但是VS的GUI上貌似找不到新的变量的设置,但是Qt的VS插件可以设置$(QTDIR ...
- 解决sublime的中文乱码
1.Sublime text 3 中文文件名显示方框怎么解决 在sublime text 3中,Preference, Settings-User,最后加上一行"dpi_scale" ...
- eclipse 找类的jar包方便工具
经常在开发过程,因为使用到比较多的类库(jar文件),在开发时经常会找不到需要的类文件存放在哪个jar文件中,这时classlocator这个插件就带我们带来极大的方便,可以帮我很快速的找到我们需要的 ...
- Storage System and File System Courses
I researched a lot about storage system classes given at good universities this year. This had two r ...
- 【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 ...
- mysql 排序 oder by 和 使用hibernate 排序
String sql="select * from sys_invitation where to_phone = '13000000000' order by create_time de ...
- 【LeetCode】217. Contains Duplicate (2 solutions)
Contains Duplicate Given an array of integers, find if the array contains any duplicates. Your funct ...