====== 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]]