最近項目里用到了Linphone,但沒想到在編譯官方demo時就遇到了一些問題奴潘,所以想著記錄一下箫荡,也想讓以后要接入Linphone的iOS開發(fā)們少踩些坑锥忿。
著急看怎么編譯demo的可以跳過下面這段。
簡單了解下Linphone寸认。
根據官網介紹:
Linphone是一款始于2001年的開源的IP語音電話(或稱SIP電話)签财,它可以讓人們在互聯網上實現語音、視頻和即時信息的自由交流偏塞,并可以移植到各大主流平臺(Windows/Android/iOS/Win phone 8/10等)上唱蒸。Linphone使用SIP協議,可以與任何SIP VoIP運營商一起使用灸叼,包括我們的免費SIP音頻/視頻服務神汹。
那什么是SIP協議?資深面向百度開發(fā)者告訴你:
SIP(Session Initiation Protocol)是一個應用層的信令控制協議古今。用于創(chuàng)建屁魏、修改和釋放一個或多個參與者的會話。這些會話可以是Internet捉腥、IP電話或多媒體分發(fā)氓拼。會話的參與者可以通過組播(multicast)、網狀單播(unicast)或兩者的混合體進行通信但狭。
接下來進入我們的主題披诗,編譯官方demo并在手機上跑起來
1.首先從github上下載一個linphone-iphone工程。
命令行進入到要保存的目錄后執(zhí)行:
git clone git://git.linphone.org/linphone-iphone.git --recursive
下載下來后我們會發(fā)現內容非常多立磁,這個時候不用著急打開linphone.xcodeproj文件呈队,因為打開了也會報一堆錯誤,運行不了唱歧。
按工程內README中介紹宪摧,我們要進行以下步驟先構建出SDK粒竖。
2.安裝Homebrew
安裝前你可以先在命令行輸入brew -v檢查一下是否安裝過了,出現版本號就證明電腦已經裝好了几于。
在命令行執(zhí)行:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
輸入密碼后等待安裝完成
Homebrew官網鏈接
3.安裝Linphone的依賴項蕊苗。
命令行cd到linphone-iphone demo文件夾中,執(zhí)行
./prepare.py
這一步我遇到了命令行報錯沿彭,如果沒有遇到該錯誤請?zhí)较乱徊?/strong>朽砰,根據他的提示來操作就行了:
命令行執(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/文件夾內睦裳,構建完成后打開項目就可以編譯運行在手機上了造锅。
可能遇到的問題:
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的介紹倍靡,感謝觀看~