集成IOS SDK
在您閱讀此文檔時,我們假定您已經具備了基礎的 iOS 應用開發經驗,並能夠理解相關基礎概念。
下載SDK
通過Cocoapods下載地址
不包含實時語音版本SDK(EaseMobClientSDKLite),引用時 #import <EaseMobSDK/EaseMob.h>
pod 'EaseMobSDK', :git => 'https://github.com/easemob/sdk-ios-cocoapods.git'
包含實時語音版本SDK(EaseMobClientSDK),引用時 #import <EaseMobSDKFull/EaseMob.h>
pod 'EaseMobSDKFull', :git => 'https://github.com/easemob/sdk-ios-cocoapods-integration.git'
直接下載
您可以到環信官方網站下載環信 SDK。
到此您已經下載好了SDK,下面開始學習SDK的集成使用吧!
注: 由於iOS編譯的特殊性,為了方便開發者使用,我們將i386 x86_64 armv7 armv7s arm64幾個平台都合並到了一起,所以SDK的靜態庫(.a文件)比較大。實際集成編譯出ipa后,根據調用功能的多少,實際只會增加2MB左右。
SDK目錄講解
1. 從官網上下載下來的包中分為如下四部分:
-
環信 iOS SDK 開發使用
-
環信 iOS release note 更新說明
-
環信 iOS UIDemo 工程源碼
-
環信 iOS UIDemo.ipa 打包的ipa
2. IOS SDK中有三個子文件夾:include、lib、resources,請不要擅自修改這些文件夾的任何東西,下面依次介紹這三個子文件夾。
-
lib 靜態庫,包含連個靜態庫libEaseMobClientSDK.a和libEaseMobClientSDKLite.a。libEaseMobClientSDKLite.a不包含實時語音功能,libEaseMobClientSDK.a包含所有功能。如果你的app中不需要實時語音功能,刪掉libEaseMobClientSDK.a只使用libEaseMobClientSDKLite.a即可。
-
resources sdk的bundle,包含舊版sdk的數據庫、消息提示音,sdk配置文件。其中sdk配置文件已加密,舊版sdk數據庫幾乎沒什么實質作用。
-
include 包含sdk的頭文件。
3. 主要介紹下include,所有的接口都在這個文件夾中。
-
EaseMobClientSDK/EaseMobClientSDKLite 包含在項目中要引用的總頭文件,即在代碼中只需#import”EMSDKFull.h”或#import”EaseMob.h”即可調用所有對應的api。
-
CallService 包含實時語音相關的接口
-
ChatService 包含聊天相關的接口,比如注冊、登錄、退出、單聊、群聊、群組等
-
Utility 包含DeviceManager和ErrorManager。DeviceManager硬件相關接口,ErrorManager錯誤碼定義
具體接口講解請轉到Apple Docs
注:
-
include包含5個子文件夾:CallService、ChatService、EaseMobClientSDK、EaseMobClientSDKLite、Utility。如果無需實時語音功能,將CallService和EaseMobClientSDK刪掉即可。
-
類似EM@Manager命名格式的文件夾的內部結構都是相似的。delegates文件夾包含各種代理接口,internal文件夾包含各種協議的聲明,types文件夾包含各種實例的聲明。
配置工程
1. 導入SDK
將下載好的SDK文件夾(EaseMobSDK)拖入到項目中,並勾選上Destination
2. 設置工程屬性
2.1. 向Build Phases → Link Binary With Libraries 中添加依賴庫
SDK依賴庫有
-
MobileCoreServices.framework
-
CFNetwork.framework
-
libEaseMobClientSDKLite.a
-
libsqlite3.dylib
-
libstdc++.6.0.9.dylib
-
libz.dylib
-
libiconv.dylib
-
libresolv.dylib
-
libxml2.dylib
2.2. 向Build Settings → Linking → Other Linker Flags 中 添加-ObjC(注意大小寫)
2.3. 如果項目中使用-ObjC有沖突,可以添加-force_load來解決。
格式為: -force_load[空格]EaseMobSDK/lib/libEaseMobClientSDKLite.a(靜態庫的路徑)
-
step1. 先添加一個-force_load
-
step2. 將靜態庫拖動到上一步添加的-force_load下面
-
step3. 最終效果
編譯工程
以上步驟進行完后,編譯工程,如果沒有報錯,恭喜你,集成sdk成功,可以進行下一步了。