在升級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