【iOS XMPP】使用XMPPFramewok(一):添加XMPPFramework(XCode 4.6.2)

iOS下的XMPPFramework 在iOS下面的XMPP开发的框架,之前在网上找了很多都少文件,这个相对全一点。 立即下载

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/),且不得用于商业目的。
LiveChat:LiveChat 是 iOS 8 的基本 XMPP 客户端,使用 XMPPFramework 快速编写 在线聊天 ====== LiveChat 是一个小型 iOS 应用程序,我用来学习 Swift 并通过与 xmpp 身份验证结合使用(尽管您可以使用自己的两条腿的 XMPP 提供程序)。 它并不意味着是生产级代码,只是一些你可以破解的东西,也许可以用作其他东西的基础。 项目目标 学习斯威夫特 使用 XMPP 提供程序进行身份验证 - 应用程序授权以及资源所有者。 与服务器拉/推/同步消息 要求 - 服务器端组件 立即下载

相关推荐

STM32平台中ARM架构向量表配置:手把手教程

深入讲解STM32平台下arm架构的向量表配置方法,结合实际操作步骤,帮助开发者掌握中断向量的定位与初始化,提升嵌入式系统开发效率。

weixin_42514540的博客 800

IOS基于XMPP协议开发--XMPPFramewok框架(一):基础知识

IOS基于XMPP协议开发--XMPPFramewok框架(一):基础知识 最近蘑菇街团队的TT的开源,使我对im产生了兴趣,然后在网上找到了XMPPFramework进行学习研究, 并写了以下系列教程供大家参考,有写的不对的地方,请大家多多包涵指正。 目录索引   IOS基于XMPP协议开发--XMPPFra...

weixin_30527143的博客 149

Google账号找回通用方法(尤其是知道账号密码仍无法登录和找回的)

Google账号找回通用方法【尤其是知道账号密码仍无法登录和找回的】普通找回注意:适用于常用谷歌账户的设备和网络情况下无法使用手机或辅助邮箱验证码进行密码找回特殊找回方法注意;适用于1.新的设备以及网络环境(包括由于非正常原因导致设备系统以及应用信息变更)2.没有开启辅助验证(手机/邮箱)3.知道账号密码但无法登录或找回。通过申诉进行找回 普通找回 注意:适用于 常用谷歌账户的设备和网络情况下 无法使用手机或辅助邮箱验证码进行密码找回 通过恢复页面进行恢复 https://accounts.google

极客代码-极致生活 23万+

XMPPFramewoerk支持IPv6

之前有一个博主 写了一个支持 IPv6的改动方案 http://blog.csdn.net/xuxue1072/article/details/51481102但是我使用他的 不能改写成功 总是报错 Can't assign requested address 所以我查找一些其他资料找到一些其它的改写方案 第一步 先把cocoaAsynocSocket更新到最新的,这可以从Github 上找到。

u011604049的博客 1148

【WiFi】T830 MT7992 WMM测试修改操作说明

WiFi WMM(Wi-Fi Multimedia)是Wi-Fi联盟推出的一项技术,用于优化无线网络中的多媒体内容传输。WMM通过优先处理不同类型的数据流来改善网络性能,特别是在网络拥堵时。:WMM通过提供服务质量支持,确保语音、视频和其他多媒体应用在无线网络中获得优先处理。这有助于减少延迟和抖动,改善用户体验。:WMM将数据流分为四个优先级队列:语音、视频、最佳效果(Best Effort)和背景(Background)。语音和视频流通常被赋予更高的优先级,以确保它们在网络中得到及时传输。

wgl307293845的博客 1018

【YOLO部署Android安卓手机APP】YOLOv8部署到安卓实时目标检测识别——官方/自训练模型YOLOv8人脸/车辆等目标检测(可自定义更换其他目标)

本文首先讲解如何直接使用官方训练好的模型部署到手机APP进行人脸检测,然后讲解如何修改其他目标进行检测,以车辆检测为例进行讲解如何训练自己的模型部署到手机APP。本文为详细设计/配置文档,包含完整所需的环境配置搭建,项目工程配置步骤等,手把手记录使用pycharm和Android studio的工程开发过程,实现YOLO部署到安卓。实战开发,亲测无误。本项目实现了人脸检测和车辆检测,当然,以此你可以按照本项目开发步骤扩展更换为其他目标进行检测,例如更换为车牌、手势、人脸面部活动、人脸表情、火焰烟雾、行人等

嵌入式阿齐Archie 1万+

XMPPFramework

XMPPFramework XMPP Framework概述 XMPP Framework是一个开源的,objective-c实现的xmpp应用开发框架。采用模块化的设计。框架分为两个部分,核心和扩展。 历史 XMPP framework启动于2008年,一开始是作为RFC3920的一个简单实现。它提供一个小型代理系统,用于接收3种xmpp节(presence, message, iq)。

2193

【VTKExamples::PolyData】第十六期 GradientFilter

本文分享VTK样例GradientFilter,并解析接口vtkGradientFilter & vtkAssignAttribute,希望对各位小伙伴有所帮助!

qq_40041064的博客 318

XMPPFramework(一)简介

XMPPFramework是根据XMPP协议,用Objective-C语言实现的一个框架。此框架使用GCD构建,是线程安全的并且支持大并发。 一、历史 XMPPFramework起源于2008年,最初的时候,她只是实现了RFC 3920(XMPP的标准),提供了一个很小的delegate用来接收三种类型的XML节点(presence、message、iq)。后来XMPPFramework有实现

fullwonder的专栏 753

手把手教你学Simulink——基于Simulink的固态变压器(SST)多级协同控制

摘要:本文详细介绍了基于Simulink的固态变压器(SST)多级协同控制方法。SST作为新一代智能电网核心设备,通过AC-DC整流、DC-DC隔离和DC-AC逆变三级架构实现电能高效转换。针对多级耦合难题,提出能量-功率协同控制策略:纵向解耦电压环与功率前馈,横向联动级间功率指令。在Simulink中搭建10kV/400V系统模型,实现直流母线电压波动<2%的动态性能。特别设计了负载突变时的三级协同机制,通过虚拟惯性算法和前馈控制实现快速响应。文章包含完整的建模步骤、控制推导和参数设置,为电力电子工

MHD0815的博客 192

100天精通Python(数据分析篇)——第53天:初识pandas模块_基础介绍

一、初始pandas 1. 什么是pandas? 2. 为什么要学习pandas? 3. pandas的优势 4. 下载安装pandas 二、Pandas的数据类型 1. Series 2. DataFrame

努力让自己发光,对的人才能迎着光而来 17万+

ios 使用XMPPFramewok:添加XMPPFramework(XCode 4.6.2)

XMPPFramework GitHub: https://github.com/robbiehanson/XMPPFramework   获取源代码 git clone https://github.com/robbiehanson/XMPPFramework.git checkout XMPPFramework 一个最新的 branch   添加依赖

Code-lover's Learning Notes 839

Linux 服务器上部署 OpenClaw完整教程

2. 全局安装 OpenClaw 3. 初始化配置 配置模型提供商 方式一:使用配置命令(推荐) 方式二:直接编辑配置文件 在 部分添加: 配置多个模型提供商 如果你使用 Antigravity 本地代理,可以同时配置多个模型: 配置飞书集成 1. 创建飞书应用 访问 飞书开放平台 创建企业自建应用 记录 App ID 和 App Secret 2. 配置应用权限 在飞书开放平台,为应用添加以下权限:重要: 必须使用 长连接(WebSocket) 模式,不要使用 HTTP 回调!在飞书开放

Maynor的博客 5247

半导体核心零部件控制算法开发:C/C++实时实现与CiA 402实践

半导体设备控制算法是面向高精度制造的实时控制系统工程,其本质是将控制理论(如PID、LQR、MPC)在资源受限嵌入式平台(ARM Cortex-R/Xilinx Zynq)上转化为纳秒级响应、亚微米定位、ppb级稳态精度的可量产固件。核心挑战源于物理约束——MFC气体动态非线性、ESC热应力限值、EtherCAT 125μs同步抖动≤100ns等硬性指标,倒逼算法必须手写C/C++、绕过MATLAB自动生成、深度适配CiA 402协议栈与裸机/RTOS运行环境。技术价值体现在工艺良率提升、设备国产化替代与F

weixin_34161083的博客 452

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

XMPPFramework开发(二):工程配置以及登录注册

搞事前言 在前面一篇博客中说到关于Openfire的服务器的搭建,这一篇博客就从登录注册开始搞起,其实发现很多网上的XMPPFramework的使用博客都是简单的说一下其中的各种代理方法是干什么用的,各种界面之间的逻辑没有较为详细的讲解,所以骚栋准备从XMPPFramework中各种代理方法的使用情况以及一个简单的聊天App的逻辑实现,进行详细的说明讲解.恩恩,对于自己写的示例SDChat也是写了好几天了,其中还是存在不少的Bug.我准备同步更新,一边改Bug的同时,一边更新博客.希望大家谅解. ..

得不到的永远是骚栋. 602

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

XMPPFramework开发(一):Openfire服务器搭建

XMPPFramework开发前言 这两天没有更新博客,这里先对大家说声对不起了.因为这几天一直忙于研究XMPPFramework这个开源框架.XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议,同时还提供了用于读写XML的工具.可以帮助我们快速的开发即时通讯功能.XMPPFramework其实以前培训的时候也是有做过的,不过那只是一顿无脑敲,对其原理以及逻辑并没有深入的了解.而且后期开发使用环信、融云三方开发比较多,XMPPFramework..

得不到的永远是骚栋. 993

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

XMPPFramework开发(六):聊天功能和消息回执

前言 前面我们几篇文章我们一直在说关于XMPPFramework中好友关系相关的东东,今天即时通讯最重要的是什么?通讯聊天呀,所以,我们今天就说一下XMPPFramewor聊天的实现.SDChat比较简陋的聊天界面如下所示. XMPPFramework实现聊天功能的相关方法 在XMPPFramework中实现聊天功能的类主要是XMPPSteam、XMPPMessageArchiving和XMPPMessageArchivingCoreDataStorage,其中XMPPSteam的作用主要是消息..

得不到的永远是骚栋. 653
上一篇: 【ejabberd】安装XMPP服务器ejabberd(Ubuntu 12.04)
下一篇: 【iOS XMPP】使用XMPPFramewok(二):用户登录
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值