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


    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

    其他可能导致error的,设置如下:

    ARC 警告

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

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

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

  • 相关阅读:
    关于devDependencies和dependencies报错提示及区别 --save 和--save-dev 的区别
    git 创建分支并提交到远程
    静态类中,静态方法和静态变量的执行顺序按出现执行
    Java和C#语法对比
    大数据时遇到的问题
    Javascript技巧笔记
    Javascript特性笔记
    Javascript 之《函数传参到底是值传递还是引用传递》
    Javascript之《创建对象》
    IE之诡异行为
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/4649093.html
Copyright © 2020-2023  润新知