ios集成环信遇到的相关问题整理

  • Post author:
  • Post category:其他



1. pod引入的Hyphenate里面的.h文件中和手动下载的sdk相比会缺少Hyphenate.h 。
A :

主要是pod 问题 本地仓库太旧了, 终端行pod repo update, 之后在pod search ‘Hyphenate’ 如果可以找到3.3.0版本, 就可以下载了 podfile 里面 platform 要指定8.0




2. iOS SDK 从低版本 升到3.3.0 后运行报错




dyld: Library not loaded: @rpath/Hyphenate.framework/Hyphenate

Referenced from: /Users/white/Library/Developer/CoreSimulator/Devices/BE0DDC26-96AE-4396-A6C5-48DC6938042B/data/Containers/Bundle/Application/4F9F570A-44B5-4F81-AD19-F7AA38D26E40/SYSchoolProject.app/SYSchoolProject

Reason: image not found












A : 在Build setting -> General这里加上。 还有这里也加上 改不能成optional



















3.

在AppDelegate中执行[EaseMob sharedInstance]崩溃


A : other link flags添加“-ObjC”选项(注意:O和C大写)













4.


在消息提示的小红点问题。在UITabBarController的子类中设置了IChatManagerDelegate,但是setupUnreadMessageCount不回


A : 在AppDelegate中没有写如下代码



  1. – (


    void


    )applicationWillResignActive:(


    UIApplication


    *)application {


  2. [[EaseMob

    sharedInstance


    ]


    applicationWillResignActive


    :application];


  3. }


  4. – (

    void


    )applicationDidEnterBackground:(


    UIApplication


    *)application {


  5. [[EaseMob

    sharedInstance


    ]


    applicationDidEnterBackground


    :application];


  6. }


  7. – (

    void


    )applicationWillEnterForeground:(


    UIApplication


    *)application {


  8. [[EaseMob

    sharedInstance


    ]


    applicationWillEnterForeground


    :application];


  9. }


  10. – (

    void


    )applicationDidBecomeActive:(


    UIApplication


    *)application {


  11. [[EaseMob

    sharedInstance


    ]


    applicationDidBecomeActive


    :application];


  12. }


  13. – (

    void


    )applicationWillTerminate:(


    UIApplication


    *)application {


  14. [[EaseMob

    sharedInstance


    ]


    applicationWillTerminate


    :application];


  15. }


5.‘Hyphenate/EMSDK.h’ file no found


A : 换下引用#import <HyphenateLite/HyphenateLite.h>


或者#import <Hyphenate/Hyphenate.h>


如果此方法不行

, 可以试试选中你的项目中的Pods -> EaseUI->Build Phases->Link Binary With Libraries ,点➕->Add Other ,找到工程里面,Pods里面的Hyphenate文件夹下面的Hyphenate.framework 点击open,重新编译就好了








6.


A :  可以参考问题2的基础上

,

再看下相对路径那里

7.集成动态库上传AppStore出现问题, 打包上线时报错



A :  遇到这个问题的小伙伴一定是没有认真看咱们环信的官方文档

,











由于

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.










8.ios apns推送是什么原因导致这个错误



注册deviceToken失败:application:didFailToRegisterForRemoteNotificationsWithError: Error Domain=NSCocoaErrorDomain Code=3000 “未找到应用程序的“aps-environment”的授权字符串” UserInfo={NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}


A: 工程配置没有打开推送功能。