環(huán)信最新動(dòng)態(tài)庫(kù)集成第一彈

本篇文章針對(duì)第一次集成環(huán)信sdk的同學(xué),以自己的集成經(jīng)驗(yàn)寫(xiě)一個(gè)集成示例,希望可以幫到大家.

由于圖片比較直觀,更容易表達(dá),所以使用大量圖片.
先說(shuō)明下: 環(huán)信sdk3.2.2.r2(包含這個(gè)版本)之前,都是靜態(tài)庫(kù).a
從開(kāi)始sdk3.2.3只有動(dòng)態(tài)庫(kù).framework.而且需要編譯環(huán)境最低iOS 8(主要是蘋(píng)果動(dòng)態(tài)庫(kù)編譯僅支持iOS 8以上),順便介紹下easeUI建議手動(dòng)導(dǎo)入,因?yàn)楹芏嚅_(kāi)發(fā)者需求不能滿足,需要基于easeUI二次開(kāi)發(fā),手動(dòng)導(dǎo)入方便測(cè)試和修改源碼;easeUI使用指南官方鏈接:http://docs.easemob.com/im/300iosclientintegration/85easeuiguide

功能上的區(qū)別

直接看官方更新日志:http://docs.easemob.com/im/300iosclientintegration/130iosqa

頭文件區(qū)別:

靜態(tài)庫(kù):

不包含實(shí)時(shí)語(yǔ)音版本 SDK(HyphenateLite),引用時(shí) #import <HyphenateLite_CN/EMSDK.h>
包含實(shí)時(shí)語(yǔ)音版本 SDK(Hyphenate),引用時(shí) #import<Hyphenate_CN/EMSDKFull.h>

動(dòng)態(tài)庫(kù):

不包含實(shí)時(shí)語(yǔ)音版本 SDK(HyphenateLite),引用時(shí) #import<HyphenateLite/HyphenateLite.h>
包含實(shí)時(shí)語(yǔ)音版本 SDK(Hyphenate),引用時(shí) #import<Hyphenate/Hyphenate.h>

1.從環(huán)信官網(wǎng)下載最新動(dòng)態(tài)庫(kù)sdk3.2.3鏈接:http://www.easemob.com/download/im

Paste_Image.png

2.我在這里直接拖入包含實(shí)時(shí)語(yǔ)音sdk和easeUI到空項(xiàng)目如圖:

Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

細(xì)心的同學(xué)發(fā)現(xiàn)以前的依賴庫(kù)并沒(méi)有添加,基于動(dòng)態(tài)庫(kù)集成我們不需要添加任何依賴庫(kù)了.

如果您是靜態(tài)庫(kù)集成還是需要導(dǎo)入下面SDK 依賴庫(kù)有:
CoreMedia.framework
AudioToolbox.framework
AVFoundation.framework
MobileCoreServices.framework
ImageIO.framework
libc++.tbz
libz.tbz
libstdc++.6.0.9.tbz
libsqlite3.tbz
libiconv.tbz (包含實(shí)時(shí)語(yǔ)音sdk需要導(dǎo)入)

第 2 步:SDK 不支持 bitcode,向 Build Settings → Linking → Enable Bitcode 中設(shè)置 NO。


Paste_Image.png

3.我們?yōu)轫?xiàng)目創(chuàng)建一個(gè)pch,來(lái)處理sdk和easeUI編譯,并設(shè)置pch路徑;

Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

4.下面我們?cè)僮鲆粋€(gè)測(cè)試,在客戶端注冊(cè)一個(gè)環(huán)信賬號(hào)并登陸;
首先后臺(tái)設(shè)置開(kāi)放注冊(cè)模式:

Paste_Image.png

然后我們根據(jù)官方文檔簡(jiǎn)單測(cè)試:http://docs.easemob.com/im/300iosclientintegration/30iossdkbasic

Paste_Image.png

測(cè)試通過(guò)注冊(cè)并登錄.哈哈


Paste_Image.png
打包上架appstore之前分離sdk 刪除i386 x86_64架構(gòu)(用于模擬器運(yùn)行)兩個(gè)平臺(tái) ;(注意分離之后只能真機(jī)運(yùn)行sdk,如果還想模擬器和真機(jī)運(yùn)行,只需把沒(méi)有分離過(guò)的.framework文件替換自己項(xiàng)目里的即可)請(qǐng)參考這位大神鏈接http://www.itdecent.cn/p/f058b25163b8

下面介紹一下對(duì)已有項(xiàng)目集成經(jīng)常遇到報(bào)錯(cuò),解決方案

報(bào)錯(cuò)1:首先介紹下環(huán)信easeUI里面默認(rèn)集成第三方庫(kù)有:

Paste_Image.png

這些第三方庫(kù)如果自己的已有項(xiàng)目已經(jīng)存在,需要?jiǎng)h除其中一個(gè),一般項(xiàng)目已有的已經(jīng)很依賴,那就刪除環(huán)信的即可;有些人這時(shí)就不知道怎么整合了,其實(shí)可以根據(jù)報(bào)錯(cuò)可以直接看出報(bào)錯(cuò)具體位置,直接導(dǎo)入自己的第三方頭文件即可.

報(bào)錯(cuò)2:加密庫(kù)沖突解決

報(bào)錯(cuò)一般會(huì)提示openssl 和libssl,這個(gè)暫時(shí)解決辦法只有刪掉加密庫(kù),不要支付寶前端加密.另外如果項(xiàng)目中有其他的音頻和視頻sdk也會(huì)產(chǎn)生沖突, 也只能選擇刪除其中一個(gè)sdk.下圖支付寶加密庫(kù)刪除如圖:

Paste_Image.png

報(bào)錯(cuò)3:報(bào)錯(cuò)找不到UIKit框架類名

最近發(fā)現(xiàn)pch設(shè)置參考官方環(huán)信demo,還是報(bào)錯(cuò).發(fā)現(xiàn)pch里面使用自定義宏NSLog里面有C語(yǔ)言printf 會(huì)導(dǎo)致 報(bào)錯(cuò),注釋掉解決

報(bào)錯(cuò)4:基于已有項(xiàng)目報(bào)錯(cuò)C++變量找不到

因?yàn)閯?dòng)態(tài)庫(kù)集成不需要導(dǎo)入依賴庫(kù)了,但是有些項(xiàng)目會(huì)報(bào)錯(cuò)找不到C++變量,解決方案導(dǎo)入依賴庫(kù)libc++.tbz即可.

報(bào)錯(cuò)5:build setting => treart warning as errors 設(shè)置yes

Paste_Image.png

以上僅供希望大家參考.如有錯(cuò)誤請(qǐng)幫忙指出,遇到新的報(bào)錯(cuò)和解決方案可以評(píng)論下,一起學(xué)習(xí)和進(jìn)步.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容