banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

MAC OS编译iOS版Linphone SDK和APP

最近由于开发一款基于 SIP 通信的 VOIP 应用程序项目需要,自己研究了一下几款开源 SIP 实现,主要有 PJSIP 和 Linphone,PJSIP 由于文档说明详细,编译和测试都没有费多大事情。Linphone 的编译就比较费神费力了,开始之前查看互联网上的资料,大家都说各种痛苦折磨,后来自己实践了一把,除了文档说明奇缺之外,编译还算顺利,除了调查耗费了不少时间。

简单说明一下 PJSIP 和 Linphone PJSIP is a free and open source multimedia communication library written in C language implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE. It combines signaling protocol (SIP) with rich multimedia framework and NAT traversal functionality into high level API that is portable and suitable for almost any type of systems ranging from desktops, embedded systems, to mobile handsets.

Linphone is an open source SIP Phone, available on mobile and desktop environments (iOS, Android, Windows Phone 8, Linux, Windows Desktop, MAC OSX) and on web browsers. Linphone has inside a separation between the user interfaces and the core engine, allowing to create various kinds of user interface on top of the same functionalities.

编译环境 MAC OS 10.10.5 Xcode 6.4

以下是编译的方法步骤,500M 的源代码官方只提供一段 README.MD 来说明。

1. 安装 Xcode 和 command line tools,去 AppStore 下载即可,已安装过的跳过 2. 安装 HomeBrew,去http://brew.sh,按提示安装最新版本的 HomeBrew 即可,或者联网打开终端使用以下命令安装。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

3.Xcode 和 Homebrew 安装无误后可以使用以下命令进行准备工作,首先下载 linphone 的源代码,折腾即将开始。

git clone git://git.linphone.org/linphone-iphone.git --recursive

这里准备好网络,大约 500M 左右的文件,建议使用 VPN 下载。

4. 编译源代码需要安装必要的依赖包和 lib,运行以下命令,按要求安装即可。

./prepare.py

5. 准备工作完成后使用以下命令编译 linphone 的 SDK。

./prepare.py -c && ./prepare.py && make

6.SDK 编译完成后可以打开 linphone.xcodeproj,后面按正常的 ios 应用程序进行编译即可。

编译过程中问题与解决 1. 无法安装和卸载 homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
Failed to locate Homebrew!

原因可能是这台电脑上的其他用户安装过 homebrew,解决办法是运行以下命令重新安装

#清理 git 缓存
rm -rf /usr/local/.git
#彻底清理 Cellar,尽量不要使用
#rm -rf /usr/local/Cellar

2. 提示找不到 libtoolize,要求安装 libtool, 原因是 MAC OS 上 libtool 和 libtoolize 这两位改成了 glibtoolize 和 glibtool。连接一下即可

sudo ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize

参考资料 http://blog.csdn.net/showhilllee/article/details/42966305

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.