刚进到新的项目组,就接到WebRTC相关的任务。我们的项目是需要基于WebRTC上做二次开发。而最新版本的WebRTC的工程是基于gn和ninja,每次修改完后,编译成lib或者framework才能进行调试。特别不方便。本文记录的就是分离WebRTC的OC工程的踩坑过程。
注:目前编译通过,但是还是存在内存问题。GN的编译条件还存在差别。暂时还没解决。
1、什么是WebRTC?
WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。2011年5月开放了工程的源代码,在行业内得到了广泛的支持和应用,成为下一代视频通话的标准。
官网介绍:https://webrtc.org
2、 获取源码
第一步就是获取源码。由于不可抗力,需自行备梯。我们的目标是获取iOS版本的代码。原文档:https://webrtc.org/native-code/ios/
-
获取depot tools, 并且配置好环境。http://dev.chromium.org/developers/how-tos/install-depot-tools
-
获取WebRTC iOS版本代码。
$ mkdir webrtc && cd webrtc # 下载源码库 $ fetch --nohooks webrtc_ios # 同步第三方依赖库 $ gclient sync
接下来就是耐心的等待, 代码库大概是6G左右。我获取是1月3号的版本:
d25f79e
。
坑:由于使用了代理。所以需要设置curl的代理配置。否则git无法正常工作。
$ export https_proxy=http://127.0