最新linphone-iphone Demo編譯運(yùn)行

最近項(xiàng)目里用到了Linphone,但沒(méi)想到在編譯官方demo時(shí)就遇到了一些問(wèn)題,所以想著記錄一下,也想讓以后要接入Linphone的iOS開發(fā)們少踩些坑。
著急看怎么編譯demo的可以跳過(guò)下面這段。

簡(jiǎn)單了解下Linphone。

根據(jù)官網(wǎng)介紹:

Linphone是一款始于2001年的開源的IP語(yǔ)音電話(或稱SIP電話),它可以讓人們?cè)诨ヂ?lián)網(wǎng)上實(shí)現(xiàn)語(yǔ)音、視頻和即時(shí)信息的自由交流,并可以移植到各大主流平臺(tái)(Windows/Android/iOS/Win phone 8/10等)上。Linphone使用SIP協(xié)議,可以與任何SIP VoIP運(yùn)營(yíng)商一起使用,包括我們的免費(fèi)SIP音頻/視頻服務(wù)。

那什么是SIP協(xié)議?資深面向百度開發(fā)者告訴你:

SIP(Session Initiation Protocol)是一個(gè)應(yīng)用層的信令控制協(xié)議。用于創(chuàng)建、修改和釋放一個(gè)或多個(gè)參與者的會(huì)話。這些會(huì)話可以是Internet、IP電話或多媒體分發(fā)。會(huì)話的參與者可以通過(guò)組播(multicast)、網(wǎng)狀單播(unicast)或兩者的混合體進(jìn)行通信。

接下來(lái)進(jìn)入我們的主題,編譯官方demo并在手機(jī)上跑起來(lái)

1.首先從github上下載一個(gè)linphone-iphone工程。
命令行進(jìn)入到要保存的目錄后執(zhí)行:
git clone git://git.linphone.org/linphone-iphone.git --recursive
下載下來(lái)后我們會(huì)發(fā)現(xiàn)內(nèi)容非常多,這個(gè)時(shí)候不用著急打開linphone.xcodeproj文件,因?yàn)榇蜷_了也會(huì)報(bào)一堆錯(cuò)誤,運(yùn)行不了。
按工程內(nèi)README中介紹,我們要進(jìn)行以下步驟先構(gòu)建出SDK。

2.安裝Homebrew
安裝前你可以先在命令行輸入brew -v檢查一下是否安裝過(guò)了,出現(xiàn)版本號(hào)就證明電腦已經(jīng)裝好了。
在命令行執(zhí)行:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
輸入密碼后等待安裝完成
Homebrew官網(wǎng)鏈接

Homebrew官網(wǎng)首頁(yè).png

3.安裝Linphone的依賴項(xiàng)。
命令行cd到linphone-iphone demo文件夾中,執(zhí)行
./prepare.py
這一步我遇到了命令行報(bào)錯(cuò),如果沒(méi)有遇到該錯(cuò)誤請(qǐng)?zhí)较乱徊?/strong>,根據(jù)他的提示來(lái)操作就行了:

prepare py Error

命令行執(zhí)行
brew install imagemagick doxygen cmake intltool yasm automake coreutils wget optipng autoconf nasm
后重新執(zhí)行./prepare.py

4.配置環(huán)境路徑。
命令行執(zhí)行
export PATH=/usr/local/bin:$PATH

5.構(gòu)建SDK。
命令行執(zhí)行
./prepare.py -c && ./prepare.py && make
這一步大概要耗時(shí)二三十分鐘,耐心等待吧!
SDK將生成在項(xiàng)目根目錄中的liblinphone-sdk/apple-darwin/文件夾內(nèi),構(gòu)建完成后打開項(xiàng)目就可以編譯運(yùn)行在手機(jī)上了。

可能遇到的問(wèn)題:
1.證書中包含App-Group和推送,換bundleID后無(wú)法運(yùn)行。
筆者先把工程文件-targets-Capabilities中的App-Group和推送功能關(guān)掉了,之后就解決了證書問(wèn)題,不影響linphone核心功能的使用。

2.linker command failed with exit code 1 (use -v to see invocation)報(bào)錯(cuò)


工程報(bào)錯(cuò)

解決方法:工程文件 - linphone(targets) - Build Phases - Link Binary With Libraries中添加StoreKit.framework后重新編譯


添加StoreKit.framework

OK,編譯運(yùn)行SDK就寫到這,后續(xù)如果公司確定使用linphone SDK,我再寫一篇關(guān)于linphone api的介紹,感謝觀看~

?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • linphone是一款老牌的全平臺(tái)的多人語(yǔ)音視頻通話業(yè)務(wù)的軟件(始自2001年),不僅支持視頻和語(yǔ)音通話,還支持即...
    杭研融合通信iOS閱讀 18,317評(píng)論 13 24
  • 用到的組件 1、通過(guò)CocoaPods安裝 2、第三方類庫(kù)安裝 3、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,164評(píng)論 1 180
  • 社會(huì)趨于老齡化,時(shí)代在飛速發(fā)展。從商場(chǎng)到淘寶,然后京東,唯品會(huì),直到今天五花八門,網(wǎng)購(gòu),電商,微購(gòu),這都是時(shí)代造就...
    長(zhǎng)弓心悅閱讀 197評(píng)論 0 1
  • 手打不容易啊…… 1、 內(nèi)容來(lái)自《Design Patterns Explained》一書。2、 2、附有Py...
    誦之思之閱讀 319評(píng)論 0 0
  • 當(dāng)我真正的想要過(guò)好自己的生活。 或許不是一味地雞血向上,想要考一個(gè)什么樣的證書,想要有什么樣非凡的成就。 而是找到...
    I_AM_OK閱讀 221評(píng)論 0 0

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