集成環(huán)信遇到問題

1. 靜態(tài)庫問題
靜態(tài)庫問題一般為導(dǎo)入重復(fù)或者導(dǎo)入不全。
其中不包含實時語音的 SDK 需要導(dǎo)入庫有:

CoreMedia.framework
AudioToolbox.framework
AVFoundation.framework
MobileCoreServices.framework
ImageIO.framework
libc++.dylib
libz.dylib
libstdc++.6.0.9.dylib
libsqlite3.dylib

包含實時語音的 SDK 導(dǎo)入庫有:

CoreMedia.framework
AudioToolbox.framework
AVFoundation.framework
MobileCoreServices.framework
ImageIO.framework
libc++.dylib
libz.dylib
libstdc++.6.0.9.dylib
libsqlite3.dylib
libiconv.dylib

值得注意的是SDK 不支持bitcode。
2. 導(dǎo)入FixFopen.c報錯
因為添加 chatview 聊天界面時缺少依賴庫。


3. pch 文件報錯問題
文件中代碼頭尾分別加上#ifdef __OBJC__與#endif即可。
4. 缺少Hyphenate.framework問題
General 中Embedded Binaries 中添加Hyphenate.framework
5. 在AppDelegate中執(zhí)行[EaseMob sharedInstance]崩潰
在other link flags添加“-ObjC”選項(注意:O和C大寫

6. 跳轉(zhuǎn)EaseMessageViewController發(fā)送表情崩潰錯誤
EaseMessageViewControllerviewDidLoad方法中的最后邊加入這段代碼再運行EaseEmotionManager *manager=[[EaseEmotionManageralloc] initWithType:EMEmotionDefaultemotionRow:3emotionCol:7emotions:[EaseEmojiallEmoji]]; [self.faceViewsetEmotionManagers:@[manager]];
7. 信后臺設(shè)置證書后,同時在代碼里將證書名稱設(shè)置一致,但是還是收不到推送消息
在配置文件里,將Background Modes打開,勾選“Remote notifications”,后就能正常收到推送消息。
8. 第一次登陸獲取不到聊天記錄
[[EaseMob sharedInstance].chatManager setIsAutoLoginEnabled:YES];
[[EaseMob sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];//該行代碼一定要放在setIsAutoLoginEnabled,否則會造成加載不到聊天記錄的bug。
9. Hyphenate/EMSDK.h’ file no found
換下引用#import <HyphenateLite/HyphenateLite.h>或者#import <Hyphenate/Hyphenate.h>如果此方法不行, 可以試試選中你的項目中的Pods -> EaseUI->Build Phases->Link Binary With Libraries ,Add Other ,找到工程里面,Pods里面的Hyphenate文件夾下面的Hyphenate.framework 點擊open,重新編譯就好了。
10. 集成動態(tài)庫上傳AppStore出現(xiàn)問題, 打包上線時報錯
由于 iOS編譯的特殊性,為了方便開發(fā)者使用,環(huán)信將 i386 x86_64 armv7 arm64 幾個平臺都合并到了一起,所以使用動態(tài)庫上傳appstore時需要將i386 x86_64兩個平臺刪除后,才能正常提交審核在SDK當(dāng)前路徑下執(zhí)行以下命令刪除i386 x86_64兩個平臺
實時音視頻版本Hyphenate.framework

lipo Hyphenate.framework/Hyphenate -thin armv7 -output Hyphenate_armv7
lipo Hyphenate.framework/Hyphenate -thin arm64 -output Hyphenate_arm64
lipo -create Hyphenate_armv7 Hyphenate_arm64 -output Hyphenate
mv Hyphenate Hyphenate.framework/

不包含實時音視頻版本HyphenateLite.framework

lipo HyphenateLite.framework/HyphenateLite -thin armv7 -output HyphenateLite_armv7
lipo HyphenateLite.framework/HyphenateLite -thin arm64 -output HyphenateLite_arm64
lipo -create HyphenateLite_armv7 HyphenateLite_arm64 -output HyphenateLite
mv HyphenateLite HyphenateLite.framework/

運行完畢后得到的Hyphenate.framework就是最后的結(jié)果,拖進工程,編譯打包上架。注意 : 最后得到的包必須真機編譯運行,并且工程要設(shè)置編譯二進制文件General->Embedded Bunaries.
11. 消息提示的小紅點問題。在UITabBarController的子類中設(shè)置了IChatManagerDelegate,但是setupUnreadMessageCount不回調(diào)
原因:在AppDelegate中沒有寫

-(void)applicationWillResignActive:(UIApplication *)application {
[[EaseMob sharedInstance] applicationWillResignActive:application];
 }
-(void)applicationDidEnterBackground:(UIApplication *)application {
 [[EaseMob sharedInstance] applicationDidEnterBackground:application];
}
 -(void)applicationWillEnterForeground:(UIApplication *)application {
[[EaseMob sharedInstance] applicationWillEnterForeground:application];
}
-(void)applicationDidBecomeActive:(UIApplication *)application {
[[EaseMob sharedInstance] applicationDidBecomeActive:application];
}
 -(void)applicationWillTerminate:(UIApplication *)application {
[[EaseMob sharedInstance] applicationWillTerminate:application];
}

將以上幾個方法在AppDelegate中寫上后,就能正常回調(diào)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容