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ā)送表情崩潰錯誤在
EaseMessageViewController
的viewDidLoad
方法中的最后邊加入這段代碼再運行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當前路徑下執(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)