OC项目集成SocketIO各种问题报错解决

1,168 阅读2分钟

公司项目最近想将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 即可。