環信demo的整合問題
- 首先是匯入環信的sdk,編譯,這個過程的困難不是很多,簡單提一下,首先下載好EaseMobSDK,這裡注意一點的是,lib靜態庫中包括
EaseMobClientSDKLite
和EaseMobClientSDK
這兩種,如果你需要實時語音的話選擇EaseMobClientSDK
,否則選擇EaseMobClientSDKLite
,兩者只能匯入一個。 - 其次新增需要的靜態庫
MobileCoreServices.framework
CFNetwork.framework
ibsqlite3.dylib
libstdc++.6.0.9.dylib
libz.dylib
libiconv.dylib
libresolv.dylib
libxml2.dylib
(如果使用的是xcode7,字尾為tbd)
- 最後向Build Settings → Linking → Other Linker Flags 中 新增-ObjC(注意大小寫)
以上過程基本不會出現問題,在執行編譯都能通過。
主要是環信UI的整合過程中會出現很多問題,官方也沒有具體說如何匯入,只是簡略說一下參照demo,然後就開始將自定義過程,現在我將這個過程寫一遍,大家仔細看好。
將這三個資料夾拖入專案中
可能會出現以下錯誤
- 1、
錯誤一
這個報錯就是匯入SDK是將EaseMobClientSDKLite
和EaseMobClientSDK
這兩個靜態庫重複匯入,刪除不需要的即可。(如果上面已經刪除過,忽略錯誤一)
- 2、
錯誤二
瞭解這個錯誤首先要知道環信靜態庫lib,包含連個靜態庫libEaseMobClientSDK.a
和libEaseMobClientSDKLite.a
。
libEaseMobClientSDKLite.a
不包含實時語音功能,libEaseMobClientSDK.a
包含所有功能。如果你的app中不需要實時語音功能,刪掉libEaseMobClientSDK.a
只使用libEaseMobClientSDKLite.a
即可,需要實時音視訊功能同理,刪掉libEaseMobClientSDKLite.a
即可。-ObjC
是配合libEaseMobClientSDK.a
使用的,-force_load
libEaseMobClientSDKLite.a
使用的,所以-force_load
所加靜態庫路徑是libEaseMobClientSDKLite.a
的路徑,不要混淆。其次還有要匯入
FixFopen.c
地址如下:
FixFopen.c
- 3、
當你匯入FixFopen.c
時可能出現錯誤三
錯誤三
出現這個錯誤是你在匯入
匯入的檔案
在匯入上述檔案的的時候沒有新增所需要的依賴庫,出現錯誤三隻需要新增以下缺失的庫檔案:
依賴庫
- 4、
匯入EaseUI
時,需要配置pch
檔案,如果你專案中本身帶有pch
檔案,將所需要的標頭檔案匯入你的專案中即可,但是匯入可能會出現錯誤,如下(錯誤四)
pch
錯誤四
只需加上#ifdef __OBJC__
#endif
條件即可。
還有在執行環信的過程中,會出現警告Warning!ivar size mismatch in PSUICollectionView_ - cannot change the superclass
,其實這個警告是無任何影響的,解決辦法非常簡單,將PSTCollectionView.m
的
char filler[200]
替換成char filler[300]
即可。