====== 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:
{{:start:300iosclientintegration:ios_xcode6need.png?nolink|错误提示}}
A: 升级 xcode6。
Q: SDK 太大了,怎么办?
A: SDK 大不影响打包成 ipa,打包出 ipa 安装包后,一般只会增加 2MB 左右。
Q: SDK 是否支持64位?
A: 支持。
===== 无法收到消息 =====
Q: 无法收到聊天消息
A: 接收聊天等回调,要注意以下几步骤:
1. 声明实现IChatManagerDelegate,如:
@interface EaseMobSDKAccountManager ()
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: 您可以通过以下几步检验您的推送:
- 首先需要您[[start:300iosclientintegration:10prepareforsdkimport#制作并上传推送证书|制作并上传推送证书]]。
- 在环信 iOS SDK 初始化时填写您的证书名称。
- [[start:300iosclientintegration:80apns|注册推送]]。
- 直接登录环信 IM 账号。
- 查看管理后台中,对应 IM 账户下是否有您刚刚写的证书名。(如果没有,请检查您是否得到了 deviceToken)
- 确定您当前证书是否和您的项目匹配。(开发证书与生产证书需要一一对应)
===== 无法自动登录 =====
Q: 无法自动登录
A: [[start:300iosclientintegration:30iossdkbasic#登录|iOS 设置自动登录]]。
===== APP 启动时无法获取历史会话 =====
Q: APP 再次启动,登录成功前无法获取会话列表。
A: 您需要[[start:300iosclientintegration:30iossdkbasic#登录|设置自动登录]]。
===== iOS 10 适配 =====
Q: 升级到iOS10,需要有什么注意的地方吗么?
A: sdk目前是适配iOS10的,但是您需要在ui上多注意一下,iOS10中,对硬件权限做了明确的限制,
{{:start:300iosclientintegration:private.jpg|}}
如果您使用了实时音视频功能,请开启相机,麦克风的权限。如果您ui中使用了对应功能,也请开启对应权限。
----
上一页:[[start:300iosclientintegration:140easeuiuseguide|EaseUI使用指南]]
下一页:[[start:300iosclientintegration:120appledoc|Apple Doc]]