Xcode8之后 XMPP 重定义问题 Redefinition of module 'dnssd'

在升级Xcode到8之后,原来的关于XMPP的项目运行报错,错误信息为: Redefinition of module ‘dnssd‘

系统和XMPP框架同时用到了 ‘dnssd‘,大概就是错误的原因。

网上关于这方面的信息不多,但是还是在 stackoverflow 中找到了一些信息,原文链接:http://stackoverflow.com/questions/39930741/redefinition-of-module-dnssd-in-swift-3。

解决方案:# The version pushed to CocoaPods is very out of date, use master branch for now 
pod ‘XMPPFramework‘, :git => "https://github.com/robbiehanson/XMPPFramework.git", :branch => ‘master‘
#pod ‘XMPPFramework‘,大概意思是需要更新XMPP框架,需要把podfile文件中的 "pod
‘XMPPFramework‘,        ‘~> 3.6.6‘  "用 " # The version pushed to
CocoaPods is very out of date, use master branch for now
pod ‘XMPPFramework‘, :git => "https://github.com/robbiehanson/XMPPFramework.git", :branch => ‘master‘
# pod ‘XMPPFramework‘ " 来替换或者直接改成 "pod ‘XMPPFramework‘,        ‘~> 3.7.0‘  "。

在pod update的过程中有的童鞋会遇到下面这样的错误:

这个是因为更新的XMPP框架中支持的最低版本为iOS 8.0 / macOS 10.8.

The minimum deployment target is iOS 8.0 / macOS 10.8.

所有需要把podfile中的 "platform:ios,"7.0" " 7.0改为8.0以上。

等了好久终于等到pod更新完成了,可是运行项目又出现了一堆错误,不,是一大堆错误。

别着急,pod更新之后会遇到这种问题,到报错的工程里面搜一下Enable Strict Checking of objc_msgSend Calls,改成相反的值就行了,别改没有报错的工程。

改完之后的错误明显减少了,可是还是有错误,如下:

Module ‘KissXML‘ not found 找不到了,解决方案是用 #import "DDXML.h" 替换 @import KissXML;

这个替换完了还有错误

CocoaAsyncSocket 又找不到了...,这里用@class GCDAsyncSocket; 替换@import CocoaAsyncSocket;

原文链接http://mp.weixin.qq.com/s/mvYY6w9gRt5_H-JEzZqY1A

Xcode8之后 XMPP 重定义问题 Redefinition of module 'dnssd'

时间: 2024-10-16 19:56:17

Xcode8之后 XMPP 重定义问题 Redefinition of module 'dnssd'的相关文章

解决头文件中定义全局变量MSVC、GNU编译器出现重定义问题

有时候我们经常碰到这样的事情,想定义某个类的静态成员,在头文件中定义该成员或者全局变量,头文件又同时被多个文件引用到,链接的时候则会出现,重定义,但是又不想在cpp文件中定义,现有一种方法可以解决此问题,直接上代码 #if defined(_MSC_VER ) __declspec(selectany) #elif defined(__GNUC__) __attribute__((weak)) #else #error "unknown complier" #endif int a=1

VC ADO “ParameterDirectionEnum”:“enum” 类型等 重定义问题 解决方案

原因分析: 1.在头文件中: #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "EndOfFile") 2.在"stdafx.h "文件中, #ifndef _AFX_NO_DB_SUPPORT #include <afxdb.h> // MFC ODBC 数据库类 #endif //

函数放在头文件中被多次包含的重定义问题

Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源 例如一个头文件headfile.h这样写 #pragma once bool Func (){return true;} 在这个头文件被多个地方包含的时候就会出问题,链接时报错: (FuncB报重定义) "fatal error LNK1169: 找到一个或多个多重定义的符号" 原因是,在headfile.h中定义了函数及其实现,如果被包含时,则会把函数实现放入包含的位置,被包含

Qt项目在使用Qwt库时编译时可能产生的标准math库宏重定义问题

项目中如果使用了Qwt库,同时又在项目代码文件中#include <math.h>,则可能报"*math.h(626) : warning C4005:"M_PI":宏重定义"的编译警告.解决方式:#include <cmath>即可. 原文地址:https://www.cnblogs.com/r0xFED/p/10344473.html

XMPP协议扩展:XEP-0198 流管理(Stream Management)中文翻译(个人整理,难免有翻译错的地方,请多多指正)

QQ讨论群:172158202 转载原文地址:http://blog.csdn.net/yuedong56/article/details/38120101 xep-0198英文文档链接地址:点击打开链接 RFC 6120中文链接地址:点击打开链接 相关參考1:点击打开链接 1.介绍 XMPP Core 用XMPP定义了流的XML技术(也就是流的建立和终止,包含认证和加密).可是核心的XMPP协议并没有为管理一个灵活的XML流提供工具. Stream Management背后的基本概念是.初始化

32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看)

32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看) 昨天,大家可能都看了代码了,不知道昨天有没有在汇编代码的基础上,实现注入计算器. 如果没有,今天则会讲解,不过建议把昨天代码熟悉一遍(课程是紧跟着来的,请不要拉下任何一天,因为今天的知识, 可能就和昨天的知识挂钩,昨天的知识,和前天的挂钩.....,当然你如你懂汇编,不是新手,那么则可以直接往下看) 一丶远程线程注入,和汇编远程注入的区别 昨天的代码,大家可能看了(没看也没有关系,就是远程线程注入的代码,开发角

VC 宏与预处理使用方法总结

目录(?) C/C++ 预定义宏^ C/C++ 预定义宏用途:诊断与调试输出^ CRT 和 C 标准库中的宏^ NULL 空指针^ limits.h 整数类型常量^ float.h 浮点类型常量^ math.h 数学常量^ EOF 常量^ errno.h 错误代码^ locale 类别^ _MAX_PATH 等文件名与路径长度限制^ RAND_MAX 随机数最大值^ va_arg/va_start/va_end 访问变长函数参数^ 宏实现的 CRT 函数^ Microsoft 预定义宏^ 平台与

C/C++ 中宏与预处理使用方法大全 (VC)

VC 中的宏使用方法参考 MSDN: Macros (C/C++) C/C++ 预定义宏^ __LINE__: 当前源文件的行号,整数__FILE__: 当前源文件名,char 字符串,使用 /FC 选项产生全路径__DATE__: 当前编译日期,char 字符串,格式 Aug 28 2011__TIME__: 当前编译时间,char 字符串,格式 06:43:59__STDC__: 整数 1,表示兼容 ANSI/ISO C 标准,配合 #if 使用__TIMESTAMP__: 最后一次修改当前

VS2013编译Qt5.6.0静态库(乌合之众)

获取qt5.6.0源码包 直接去www.qt.io下载就好了,这里就不详细说了. 这里是我已经编译好的** 链接:http://pan.baidu.com/s/1pLb6wVT 密码: ak7y ** configure配置 1.进入源码目录下的qtbase\mkspecs\win32-msvc2013目录,打开文件qmake.conf文件.添加 QMAKE_CFLAGS_RELEASE = -O2 -MT -Zc:strictStrings QMAKE_CFLAGS_RELEASE_WITH_