iOS Q&A


集成报错

Q: [NSConcreteData AES256Decrypt]: unrecognized selector sent to instance XXX

A: other link flags -ObjC 注意大小写

Q: framework not found Metal for architecture armv7s

A: 需要升级到 xcode6。

Q:

错误提示

A: 升级 xcode6。

Q: SDK 太大了,怎么办?

A: SDK 大不影响打包成 ipa,打包出 ipa 安装包后,一般只会增加 2MB 左右。

Q: SDK 是否支持64位?

A: 支持。

无法收到消息

Q: 无法收到聊天消息

A: 接收聊天等回调,要注意以下几步骤:

1. 声明实现IChatManagerDelegate,如:

@interface EaseMobSDKAccountManager ()<IChatManagerDelegate>

2. 注册当前类接收回调

[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];

3. 实现对应回调方法,如:

// 收消息的回调
-(void)didReceiveMessage:(EMMessage *)message{

}

Q: 一条消息收到多次。

A: 一般是由本类多次注册了回调导致,请确定以下方法只执行了一次。

[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];

并且在类析构时注销回调

-(void)dealloc{
	[[EaseMob sharedInstance].chatManager removeDelegate:self];
}

无法收到加好友请求

Q: 无法收到好友请求

A: 请确定您接受好友请求的类是否初始化,并声明了 IChatManagerDelegate,实现了注册回调和回调方法。

无法收到推送

Q: APP 后台时无法收到推送。

A: 环信将 notification 分为两种,一种是本地通知,一种是 APNS。当您后台时,长连接还存在,会走 didReceiveMessage 方法,需要您自己维护本地通知(即 LocalNotification)。

Q: APP 彻底关闭,无法收到推送。

A: 您可以通过以下几步检验您的推送:

  1. 首先需要您制作并上传推送证书
  2. 在环信 iOS SDK 初始化时填写您的证书名称。
  3. 直接登录环信 IM 账号。
  4. 查看管理后台中,对应 IM 账户下是否有您刚刚写的证书名。(如果没有,请检查您是否得到了 deviceToken)
  5. 确定您当前证书是否和您的项目匹配。(开发证书与生产证书需要一一对应)

无法自动登录

Q: 无法自动登录

A: iOS 设置自动登录

APP 启动时无法获取历史会话

Q: APP 再次启动,登录成功前无法获取会话列表。

A: 您需要设置自动登录

iOS 10 适配

Q: 升级到iOS10,需要有什么注意的地方吗么?

A: sdk目前是适配iOS10的,但是您需要在ui上多注意一下,iOS10中,对硬件权限做了明确的限制,

如果您使用了实时音视频功能,请开启相机,麦克风的权限。如果您ui中使用了对应功能,也请开启对应权限。


上一页:EaseUI使用指南

下一页:Apple Doc