ios导入通讯录|ios导入xmppFramework框架的两个方法步骤实录

更新时间:2020-03-20    来源:ios    手机版     字体:

【www.bbyears.com--ios】

xmpp中最常用的框架就是 xmppFrameWork

第一种方法直接拖

1> 拖入文件夹

在网盘链接的xmppFramework文件夹 :http://pan.baidu.com/s/1jGxLa3G

也可以直接去github搜索下载。

2> 拖入Sample_XMPPFramework.h,重命名为XMPPFramework.h


技术分享

3> 添加框架

CFNetwork.framework

Security.framework

libxml2.dylib

libresolv.dylib

libin.a


技术分享

4> 修改Build Settings

Header Search Paths

添加 "/usr/include/libxml2"

Other Linker Flags

添加 "-lxml2"

Library Search Paths

将"$(PROJECT_DIR)/01-仿QQ/Lib/XMPP/Vendor/libidn"

修改为"$(PROJECT_DIR)",并改为"recursive"


技术分享

5> 修改XMPP/Core/XMPP.h

在文件顶部添加"#import "


技术分享

第二种方法cocoapods

就是使用cocoapods 可以一次性导入,并且也不需要上述的配置和调整。并且以后更新框架的时候一个pod update完事。

但是有一个很严重的问题。就是你在导入框架pod install的时候会报错,出现一个 circular dependency 就是循环依赖。这是cocoapods的版本问题,cocoapods0.35版本会对xmppFramework框架造成循环依赖,解决的方法就是,将cocoapods的版本降到 0.34.4

终端操作指令如下:

1.卸载cocoapods

$ sudo gem uninstall cocoapods

2.安装xcodeproj

$ sudo gem install xcodeproj

3.安装指定版本0.34.4的cocoapods

$ sudo gem install cocoapods -v 0.34.4

 

但是这样很不爽啊,因为往后swift什么的编程全都需要cocoapods的版本保持最新0.35 甚至0.36. 所以这个降版本非常蛋疼,两种方法都能用。具体使用哪种,可根据自己喜好决定。反正我是选了第一种。

 
框架内的大致介绍

Authentication    授权,身份验证
Categories        分类
Core              核心
Extensions        扩展
Utilities         工具
Vendor            第三方库

 

在Extensions中:

CoreDataStorage   coreData存储
Reconnect    重新连接
Roster    好友管理


有数据表 XMPPRoster 用来管理用户

管理用户的类 XMPPUserCoreDataStorageObject

SystemInputActivityMonitor     系统输入的活动监控

常用的模块:

XEP - 0009    RPC(类似黑客技术)
XEP - 0012    最后的活动(判断上线,离开断开)
XEP - 0045    多人聊天
XEP - 0054    名片-个人信息设置
XEP - 0065    sockets5字节流
XEP - 0066    二进制数据传输(特殊信息的发送)
XEP - 0085    聊天状态通知
XEP - 0136    聊天记录归档


  其中有数据表 XMPPMessageArchiving

  取出当前信息的类 XMPPMessageArchiving_Message_CoreDataObject

XEP - 0153    基于名片的头像
XEP - 0199    xmpp ping (用来ping服务器和ping自己)
XEP - 0335    json容器(可能以后某些信息传输将用json格式)
 

在core中:

XMPPElement 是一个基类 ,延展出三个子类
XMPPIQ    请求 (用户登录,用户注册,添加好友等)
XMPPMessage    消息(用来发各种消息等)
XMPPPresence    展现(用户上线下线提示等)
XMPPStream    流,非常常用,大部分类的加载都在写在流的懒加载里

在vender中:

kissXML 用于xml的主要解析框架



XMPP 简介和 XMPP 框架导入工程文件

原理介绍

简介

XMPP是一种基于标准通用标记语言的子集XML协议,具有超强的可拓展性。经过拓展的XMPP可以通过发送拓展的信息来处理用户需求。XMPP包含了正对服务端的软件协议,使之能够与另一个进行通话。XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议。目前由IETF国际标准组织完成标准化工作。

标准化的核心分为两个部分

    核心的XML流传输协议
    基于XMLFreeEIM流传输的即时通讯扩展应用(这部分支持语音和视频

优点:

开放,它是开放源码的,自由开放公开。
标准化,IETF 互联网工程工作小组标准化
成熟,第一个jabber技术是在1998年开发的,现在已经相当稳定

开始使用XMPPFramework

本文演示一个运行了XMPPFramework框架的项目demo,这不是一个成熟的应用,仅仅展示了框架的使用方法。本demo仅仅使用了框架的一部分功能。当你决定添加XMPP框架到你自己的IOS应用中,本文将提供详细的介绍。最好按照流程一步一步来,不要跳过某些步骤。

Setp1:

下载最新的代码

Step2

框架有几个依赖的文件,当你把XMPPFramework拿下来的时候,已经自动放在Vendor文件夹下面。我们将把每一个依赖文件过一遍。

第一个依赖包是CocoaLumberjack,它的位置:Vendor/CocoaLumberjack。拖进工程选择copy,确保项目能够编译。

Step3


第二个依赖包是CocoaAsyncSocket,它的位置:Vendor/CocoaAsyncSocket,拖进工程选择copy。
这个包需要你添加苹果的CFNetwork framework和Security framework。Target -> Build Phases -> Link Binary With Libraries -> + ->选择CFNetwork framework和Security framework。添加完后,确保项目能够编译。


Step4


第三个依赖包是KissXml,在Vendor/KissXML 可以找到。KissXML使用libxml2,你需要添加苹果的libxml2库 到工程文件中。在Targets->BuildSettings->Search Paths-> + ->/usr/include/libxml2。

libxml2.需要你添加苹果的CFNetwork framework和Security framework。Target -> Build Phases -> Link Binary With Libraries -> + ->选择libxml2.dylb。

添加完后,确保项目能够编译

Step5


第四个,也是最后一个依赖包是LIBLdn,添加下面的三个文件到Xcode工程文件

    Vendor/libidn/idn-int.h
    Vendor/libidn/stringprep.h
    Vendor/libidn/libidn.a

最后一个文件是静态库,支持x86*64, i386, ppc, armv6, armv7指令集,因此比较大1.3M。但你的应用打包时,它只会解压你的应用需要用到的指令集对应的文件,所以不用担心应用程序文件变大。添加完成后,确保项目能够编译。

Step6


添加以下的文件夹到工程中

    Authentication
    Categories
    Core
     Utilities

Target -> Build Phases -> Link Binary With Libraries -> + ->选择libresolv.dylib,添加完后,确保项目能够编译。

现在你已经可以开始使用XMPPFramwork 在你的项目中,
以下页面你可以了解它的使用
https://github.com/robbiehanson/XMPPFramework/wiki/IntroToFramework


――――――――――――――――――――我是分割线――――――――――――――――――――


最后吐槽一下这个 XMPP GettingStart 介绍页, 明明三言两语就能说清楚的,罗里吧嗦一大堆。

最后我自己的整理版本是这样的:

添加以下的文件夹到工程中

    Authentication
    Categories
    Core
     Utilities


添加Vendor下面的CocoaLumberjack、CocoaAsyncSocket、KissXml、LIBLdn文件夹道工程中,选择copy。

添加苹果的libxml2库 到工程文件中。在Targets->BuildSettings->Search Paths-> + ->/usr/include/libxml2

添加苹果的动态链接库。Target -> Build Phases -> Link Binary With Libraries -> + ->选择CFNetwork framework、libxml2.dylb、Security framework、libresolv.dylib。

最后确保编译通过。

本文来源:http://www.bbyears.com/shoujikaifa/88420.html

热门标签

更多>>

本类排行