注意
本文是在 環信官方demo上直接更改的,并非重新導入環信sdk
錯誤1
真機定位 錯誤: 點擊 聊天框 獲取定位 的時候 崩潰
定位 報錯.png
Log:
2017-07-01 15:53:34.406824+0800 ChatDemo-UI3.0[3016:1192215] libMobileGestalt MobileGestaltSupport.m:153: pid 3016 (ChatDemo-UI3.0) does not have sandbox access for frZQaeyWLUvLjeuEK43hmg and IS NOT appropriately entitled
2017-07-01 15:53:34.406913+0800 ChatDemo-UI3.0[3016:1192215] libMobileGestalt MobileGestalt.c:550: no access to InverseDeviceID (see <rdar://problem/11744455>)
Painter Z index: 1023 is too large (max 255)
Painter Z index: 1023 is too large (max 255)
Painter Z index: 1023 is too large (max 255)
Painter Z index: 1023 is too large (max 255)
Painter Z index: 1023 is too large (max 255)
Painter Z index: 1023 is too large (max 255)
Painter Z index: 1023 is too large (max 255)
分析.png
解決方案
1.在環信 的定位界面 EaseLocationViewController.h
中添加如下 一個 region 代碼
//此處 經緯度(CLLocationCoordinate2D) 最好 寫一個 國內 經緯度
CLLocationCoordinate2D startCoord = CLLocationCoordinate2DMake(35.3, 113.9);
[_mapView setRegion:MKCoordinateRegionMakeWithDistance(startCoord, 200.0, 200.0) animated:YES];
解決方法.png
錯誤2.
國際化 模擬器 顯示 英文 問題,(真機 顯示 為 中文),強制 設置成 中文 顯示
解決方案
中英文問題.png
將 相應的 2 個 plist 中 的 Localization native development region 屬性 改成 zh-Hans
zh-Hans ------------ > ( 簡體中文)
en ------------ > ( 英文)
錯誤3
可以正常編譯,但是打包ipa 報錯
原因
環信 不支持 bitcode 模式
解決方案
將 有關 bitcode 改成 NO
最好將 project 以及 targets 里面的 全部改成 NO
打包報錯問題 Bitcode問題.png
錯誤 4
與 極光推送 配置 ,極光 推送獲取不到 token,無法 推送
原因
環信 與 極光 的部分 沖突,環信 重寫了 如下方法
不運行如下方法
極光設置推送 - 無反應問題.png
解決方案
1\. appdelegate.m 中 極光的 配置、 相關導入的 類庫、info.plist 的配置 極光設置 不更改,
2.在 AppDelegate+EaseMob.m 中 引入 極光 頭 文件 #import "JPUSHService.h"
在如下方法中 注冊 deviceToken
注意 有可能 極光 與 環信的 版本 問題,相關的注冊 deviceToken 的具體 代碼有所 差異,(此處 極光 3.0.5 環信3.3.2)
// 將得到的deviceToken傳給SDK
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[[EMClient sharedClient] bindDeviceToken:deviceToken];
[JPUSHService registerDeviceToken:deviceToken];
});
}
環信-推送 配置正確寫法.png
錯誤5
更改 登錄 邏輯后 偶爾黑屏、閃屏,甚至 加載 白版 顯示不出頁面
原因
更改 環信 官方 demo 后, 有可能 重寫 多次 window 的初始化方法
偶爾閃屏問題.png
解決方法
如上 紅框 方法 辦證在 Appdelegate.m中 只 初始化 了 一次
錯誤6
有關環信 證書 的配置
1.由于 環信 沒有 使用 pch 全局的 宏定義,所以要 一處 一處 的改
全局 搜索 apnsCertName
將相應 自己注冊的環信 賬號 配置 的證書 名 ,更改。
注意 options.apnsCertName = @""; 中使用的 為 測試 證書名字(參考 官方demo )
證書問題1.png
證書問題2.png
證書問題3.png
錯誤8
環信 key 的更改
環信key 問題.png
#define EaseMobAppKey @"XXXXX#XXXXcollection"
1.將 Appdelegate.m 中的 EaseMobAppKey 替換成 自己的key
錯誤9
tabbarItem 圖標藍色 問題,與 給定的 原圖 紅色 不否和 問題
更改-環信demo ,item圖片顏色問題 .png
//錯誤 代碼
meVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"我的"
image:[UIImage imageNamed:@"MainVC_me_normal"]
selectedImage:[UIImage imageNamed:@"MainVC_me_selected"]];
//正確代碼 -- 添加圖片 原型 的 設置
meVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"我的"
image:[[UIImage imageNamed:@"MainVC_me_normal"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
selectedImage:[[UIImage imageNamed:@"MainVC_me_selected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
錯誤10
導航欄 顏色 設置
1.在Appdelegate.m 設置如下代碼
環信demo-導航欄顏色問題.png