公司項目最近想將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的庫報錯了
繼續run,繼續報錯。項目裏報了類似很多這種錯誤,這個改起來還好,只要把尖括號改成雙引號就可以了,這兩種區別可以自行百度。
繼續run,繼續報錯,library not found for -lXXXXX
這種的也比較好解決。
解決方案
繼續run,繼續報錯。這裏是SD裏面webp找不到了。
項目裏有用到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即可。