最近項目里用到了Linphone,但沒想到在編譯官方demo時就遇到了一些問題,所以想著記錄一下,也想讓以后要接入Linphone的iOS開發(fā)們少踩些坑。
著急看怎么編譯demo的可以跳過下面這段。
簡單了解下Linphone。
根據(jù)官網(wǎng)介紹:
Linphone是一款始于2001年的開源的IP語音電話(或稱SIP電話),它可以讓人們在互聯(lián)網(wǎng)上實現(xiàn)語音、視頻和即時信息的自由交流,并可以移植到各大主流平臺(Windows/Android/iOS/Win phone 8/10等)上。Linphone使用SIP協(xié)議,可以與任何SIP VoIP運營商一起使用,包括我們的免費SIP音頻/視頻服務。
那什么是SIP協(xié)議?資深面向百度開發(fā)者告訴你:
SIP(Session Initiation Protocol)是一個應用層的信令控制協(xié)議。用于創(chuàng)建、修改和釋放一個或多個參與者的會話。這些會話可以是Internet、IP電話或多媒體分發(fā)。會話的參與者可以通過組播(multicast)、網(wǎng)狀單播(unicast)或兩者的混合體進行通信。
接下來進入我們的主題,編譯官方demo并在手機上跑起來
1.首先從github上下載一個linphone-iphone工程。
命令行進入到要保存的目錄后執(zhí)行:
git clone git://git.linphone.org/linphone-iphone.git --recursive
下載下來后我們會發(fā)現(xiàn)內(nèi)容非常多,這個時候不用著急打開linphone.xcodeproj文件,因為打開了也會報一堆錯誤,運行不了。
按工程內(nèi)README中介紹,我們要進行以下步驟先構建出SDK。
2.安裝Homebrew
安裝前你可以先在命令行輸入brew -v檢查一下是否安裝過了,出現(xiàn)版本號就證明電腦已經(jīng)裝好了。
在命令行執(zhí)行:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
輸入密碼后等待安裝完成
Homebrew官網(wǎng)鏈接
3.安裝Linphone的依賴項。
命令行cd到linphone-iphone demo文件夾中,執(zhí)行
./prepare.py
這一步我遇到了命令行報錯,如果沒有遇到該錯誤請?zhí)较乱徊?/strong>,根據(jù)他的提示來操作就行了:
命令行執(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.構建SDK。
命令行執(zhí)行
./prepare.py -c && ./prepare.py && make
這一步大概要耗時二三十分鐘,耐心等待吧!
SDK將生成在項目根目錄中的liblinphone-sdk/apple-darwin/文件夾內(nèi),構建完成后打開項目就可以編譯運行在手機上了。
可能遇到的問題:
1.證書中包含App-Group和推送,換bundleID后無法運行。
筆者先把工程文件-targets-Capabilities中的App-Group和推送功能關掉了,之后就解決了證書問題,不影響linphone核心功能的使用。
2.linker command failed with exit code 1 (use -v to see invocation)報錯
解決方法:工程文件 - linphone(targets) - Build Phases - Link Binary With Libraries中添加StoreKit.framework后重新編譯
OK,編譯運行SDK就寫到這,后續(xù)如果公司確定使用linphone SDK,我再寫一篇關于linphone api的介紹,感謝觀看~