公司项目最近想将websocket干掉,全部迁移成用SocketIO来实现客户端与服务器的长连接。关于SocketIO的介绍,网上有很多,这里不赘述。
项目地址:Socket.IO-Client-Swift
因为 SocketIO 的 OC 版本已经很老了,而且各种问题,所以这里我们采用最新的 Swift 版本。下面开始用 Cocopods 进行集成。【注意,这里有个坑是 SocketIO 现在不支持手动导入的,所以你仍然手动导入的会一直报错】
use_frameworks!#OC项目默认是不使用use_frameworks,但是混编时候有Swift的话就一定要加这个
target '你App的名字' do
pod 'Socket.IO-Client-Swift', '~> 15.0.0'
end
然后
pod install
run 一下,不出意外的报错,看一下是 CocoaHTTPServer 的库报错了
image.png
继续 run,继续报错。项目里报了类似很多这种错误,这个改起来还好,只要把尖括号改成双引号就可以了,这两种区别可以自行百度。
image.png
继续 run,继续报错,library not found for -lXXXXX
这种的也比较好解决。
解决方案
继续 run,继续报错。这里是 SD 里面 webp 找不到了。
image.png
项目里有用到 SDWebimage 和 YYImage 还有 Webp,SD 是手动拖到项目的,YY 是 pod 的,webp 库在 YY 的 pod 子项目里,这个改起来也很简单,项目删除 SD,然后导入 SD 的 webp
pod 'SDWebImage/WebP'
然后 pod install 一下,继续 run 项目成功运行。
Tips
Showing Recent Messages The “Swift Language Version” (SWIFT_VERSION) build
有时候会报以上错误,这时候指定下 Swift 版本号就行了。如果设置后还是无用,需要检查下 Xcode 的版本,版本过低是不支持 Swift5 的,需要更新系统,更新 Xcode 即可。