1. 程式人生 > >環信demo的整合問題

環信demo的整合問題

  • 首先是匯入環信的sdk,編譯,這個過程的困難不是很多,簡單提一下,首先下載好EaseMobSDK,這裡注意一點的是,lib靜態庫中包括EaseMobClientSDKLiteEaseMobClientSDK這兩種,如果你需要實時語音的話選擇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是將EaseMobClientSDKLiteEaseMobClientSDK這兩個靜態庫重複匯入,刪除不需要的即可。(如果上面已經刪除過,忽略錯誤一)

  • 2、

錯誤二

瞭解這個錯誤首先要知道環信靜態庫lib,包含連個靜態庫libEaseMobClientSDK.alibEaseMobClientSDKLite.alibEaseMobClientSDKLite.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.mchar filler[200] 替換成char filler[300]即可。