美文网首页
集成环信遇到问题

集成环信遇到问题

作者: 昵什么称 | 来源:发表于2017-05-16 12:08 被阅读0次

    1. 静态库问题
    静态库问题一般为导入重复或者导入不全。
    其中不包含实时语音的 SDK 需要导入库有:

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

    包含实时语音的 SDK 导入库有:

    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. 导入FixFopen.c报错
    因为添加 chatview 聊天界面时缺少依赖库。


    3. pch 文件报错问题
    文件中代码头尾分别加上#ifdef __OBJC__与#endif即可。
    4. 缺少Hyphenate.framework问题
    General 中Embedded Binaries 中添加Hyphenate.framework
    5. 在AppDelegate中执行[EaseMob sharedInstance]崩溃
    在other link flags添加“-ObjC”选项(注意:O和C大写

    6. 跳转EaseMessageViewController发送表情崩溃错误
    EaseMessageViewControllerviewDidLoad方法中的最后边加入这段代码再运行EaseEmotionManager *manager=[[EaseEmotionManageralloc] initWithType:EMEmotionDefaultemotionRow:3emotionCol:7emotions:[EaseEmojiallEmoji]]; [self.faceViewsetEmotionManagers:@[manager]];
    7. 信后台设置证书后,同时在代码里将证书名称设置一致,但是还是收不到推送消息
    在配置文件里,将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. 集成动态库上传AppStore出现问题, 打包上线时报错
    由于 iOS编译的特殊性,为了方便开发者使用,环信将 i386 x86_64 armv7 arm64 几个平台都合并到了一起,所以使用动态库上传appstore时需要将i386 x86_64两个平台删除后,才能正常提交审核在SDK当前路径下执行以下命令删除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就是最后的结果,拖进工程,编译打包上架。注意 : 最后得到的包必须真机编译运行,并且工程要设置编译二进制文件General->Embedded Bunaries.
    11. 消息提示的小红点问题。在UITabBarController的子类中设置了IChatManagerDelegate,但是setupUnreadMessageCount不回调
    原因:在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中写上后,就能正常回调

    相关文章

      网友评论

          本文标题:集成环信遇到问题

          本文链接:https://www.haomeiwen.com/subject/pdvkxxtx.html