XMPPFramewok IOS 开发(一)——配置xcode

看了很多教程,有的很旧,有的写的太简单,而实际操作会出现很多编译报错,特此记下来供以后参考。

最好按照步骤一步步导入Framework,每做完一步都要编译一下,发现错误及时改正,否则到最后会很麻烦。

第一步 新建项目chatDemo

第二步 下载最新版XMPPFramewok

 地址: https://github.com/robbiehanson/XMPPFramework

第三步 在chatDemo目录下新建目录3rd,在3rd目录下新建XMPP目录,如图所示

第四步 添加CocoaLumberjack 日志框架

在XMPP目录下新建Vendor目录。

拷贝下载的<XMPPFramework>/Vendor/CocoaLumberjack 到Vendor目录下。

第五步 添加CocoaAsyncSocket 轻量级的网络框架

拷贝下载的<XMPPFramework>/Vendor/CocoaAsyncSocket 到Vendor目录下。

CocoaAsyncSocket 依赖 CFNetwork.framework 和 Security.framework,

所以需要在 TARGETS -> Build Phases -> Link Binary With Libraries 添加CFNetwork.framework和 Security.framework

第六步 添加KissXML 实体类框架

拷贝下载的<XMPPFramework>/Vendor/KissXML 到Vendor目录下。

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

第七步 添加libidn

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

第八步 添加Authentication Categories CoreUtilities 

1.将源码目录下地Authentication Categories Core 和 Utilities 文件夹添加到项目文件夹XMPP下

2.在 TARGETS -> Build Phases -> Link Binary With Libraries 添加动态连接库 libresolv.dylib

第九步 添加XMPPFramework.h 到XMPP目录下

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"

第十步 根据自己的项目需求添加<XMPPFramework>/Extensions 的扩展到XMPP目录下

在 TARGETS -> Build Phases -> Link Binary With Libraries 添加Extensions的依赖库:
CoreData.framework SystemConfiguration.framework CoreLocation.framework

如果项目没有使用ARC,编译之后可能会有很多ARC警告,

进行如下设置Edit -> Refactor -> convert to Objective-C ARC

最后项目目录如下

 

XMPPFramewok IOS 开发(一)——配置xcode,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。