最近项目里用到了Linphone,但没想到在编译官方demo时就遇到了一些问题,所以想着记录一下,也想让以后要接入Linphone的iOS开发们少踩些坑。
着急看怎么编译demo的可以跳过下面这段。
简单了解下Linphone。
根据官网介绍:
Linphone是一款始于2001年的开源的IP语音电话(或称SIP电话),它可以让人们在互联网上实现语音、视频和即时信息的自由交流,并可以移植到各大主流平台(Windows/Android/iOS/Win phone 8/10等)上。Linphone使用SIP协议,可以与任何SIP VoIP运营商一起使用,包括我们的免费SIP音频/视频服务。
那什么是SIP协议?资深面向百度开发者告诉你:
SIP(Session Initiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。
接下来进入我们的主题,编译官方demo并在手机上跑起来
1.首先从github上下载一个linphone-iphone工程。
命令行进入到要保存的目录后执行:
git clone git://git.linphone.org/linphone-iphone.git --recursive
下载下来后我们会发现内容非常多,这个时候不用着急打开linphone.xcodeproj文件,因为打开了也会报一堆错误,运行不了。
按工程内README中介绍,我们要进行以下步骤先构建出SDK。
2.安装Homebrew
安装前你可以先在命令行输入brew -v检查一下是否安装过了,出现版本号就证明电脑已经装好了。
在命令行执行:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
输入密码后等待安装完成
Homebrew官网链接
3.安装Linphone的依赖项。
命令行cd到linphone-iphone demo文件夹中,执行
./prepare.py
这一步我遇到了命令行报错,如果没有遇到该错误请跳到下一步,根据他的提示来操作就行了:
命令行执行
brew install imagemagick doxygen cmake intltool yasm automake coreutils wget optipng autoconf nasm
后重新执行
./prepare.py
4.配置环境路径。
命令行执行
export PATH=/usr/local/bin:$PATH
5.构建SDK。
命令行执行
./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后重新编译
添加StoreKit.framework
OK,编译运行SDK就写到这,后续如果公司确定使用linphone SDK,我再写一篇关于linphone api的介绍,感谢观看~
网友评论