iOS環信3.0整合 (一)SDK的整合
一、準備工作1、註冊環信帳號
註冊一個環信帳號之後,我們用註冊的帳號登陸。然後建立一個應用,會得到一個對應的AppKey,這個AppKey在初始化環信SDK的時候需要用到。
點擊查看註冊環信帳號教程
2、製作推送認證
如果需要做離線推送的功能,需要製作一個推送認證。如果只是需要實現單聊、群聊等功能,可以跳過此步驟。個人建議剛開始接觸環信的開發人員可以忽略此步驟。
點擊查看製作推送認證教程
3、下載環信SDK
點擊下載環信iOS版的SDK
二、整合環信的SDK1、把環信SDK添加到工程中
從環信官網下載下來的是一個壓縮包,解壓之後,把我們需要的環信SDK,即HyphenateSDK這個檔案夾,整個的拖入到我們的工程中。如:
在lib檔案夾下面有兩個靜態庫,只需要用到一個,根據你的需求選擇。
libHyphenateSDK.a不包含即時語音功能,libHyphenateFullSDK.a包含所有功能。
2、添加對應的依賴庫
2.1. 向Build Phases → Link Binary With Libraries 中添加依賴庫
SDK依賴庫有
- AudioToolbox.framework
- AVFoundation.framework
- MobileCoreServices.framework
- ImageIO.framework
- SystemConfiguration.framework
- libc++.dylib
- libresolv.dylib
- libz.dylib
- libstdc++.6.0.9.dylib
- libsqlite3.dylib
(如果使用的是xcode7,尾碼為tbd)
SDK包含即時語音依賴庫有
- CoreMedia.framework
- AudioToolbox.framework
- AVFoundation.framework
- MobileCoreServices.framework
- ImageIO.framework
- SystemConfiguration.framework
- libc++.dylib
- libresolv.dylib
- libz.dylib
- libstdc++.6.0.9.dylib
- libsqlite3.dylib
- libiconv.dylib
溫馨提示:注意不要添加錯了,也不能添加少了,添加完畢之後,不要著急,先編譯一下。編譯成功,則說明沒有問題;如果編譯報錯,則仔細對照上面例舉的靜態庫進行添加,直到編譯成功,再進行下一步。
3、配置工程3.1 不包含語音靜態庫的配置方法(1) 刪掉libHyphenateFullSDK.a,保留libHyphenateSDK.a;
(2) 在Build Settings -> Other Linker Flags 添加”fore_load”和”libHyphenateSDK.a”的相對路徑。
如所示:
3.2 包含語音靜態庫的配置方法(1) 刪掉libHyphenateSDK.a,保留libHyphenateFullSDK.a;
(2) 在Build Settings -> Other Linker Flags 添加”-ObjC”。
如所示:
4、驗證SDK是否添加成功在AppDelegate.m檔案中添加環信SDK初始化的方法,記得添加標頭檔”EaseMob.h”。下面提供了我用的測試AppKey,你可以替換成你自己申請的AppKey。編譯成功,則說明你已經正確整合了環信的SDK了。
如果編譯有問題,可能存在的原因:
(1) 靜態庫沒有添加正確;
(2) 靜態庫工程配置不正確;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
EMOptions *options = [EMOptions optionsWithAppkey:@"chongwu#chongwu"];
// options.apnsCertName = @"";
[[EMClient sharedClient] initializeSDKWithOptions:options];
EMError *error1 = [[EMClient sharedClient] registerWithUsername:@"easeuidemo" password:@"1"];
if (error1==nil) {
NSLog(@"註冊成功");
}
EMError *error2 = [[EMClient sharedClient] loginWithUsername:@"easeuidemo" password:@"1"];
if (!error2) {
NSLog(@"登陸成功");
}