系列
iOS音视频开源框架WebRTC入门-编译(前序-授人鱼不如授人以渔)
iOS音视频开源框架WebRTC入门-编译(后序-带WebRTC源码)
iOS音视频开源框架WebRTC入门-AppRTCMobile(WebRTC官网demo)
iOS音视频开源框架WebRTC入门-简单应用
iOS音视频开源框架WebRTC入门-本地/远端图像等比缩放
iOS音视频开源框架WebRTC入门-外网通信
1. WebRTC在Mac上编译流程
WebRTC官网
官网描述:
WebRTC is a free, open project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
官网编译指南
我的编译流程👇:(根据网友反馈,depot_tools 通过 git 下载不了,原来我这边配置了hosts,所以造成我假象中的全程无需翻墙
,在这里说句不好意思!!!)
1.1. 下载依赖工具:depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
将depot_tools添加到系统环境变量中:
export PATH=`pwd`/depot_tools:"$PATH"
强制环境变量立即生效
source $HOME/.bash_profile
查看刚刚的环境变量是否生效:
echo $PATH
1.2. 下载WebRTC源码
设置要编译的平台到环境变量中:
export GYP_DEFINES="OS=ios"
下载源码:
在这里,推荐一个第三方脚本:webrtcbuilds
它推荐使用Homebrew!
Homebrew的安装可以参考我的一篇文章:
CocoaPods简便安装
运行webrtcbuilds目录下面的脚本:
./build.sh
开启无脑式的刷屏模式,喝杯☕️休息哈...
但是,最后报错了:

这个错误即使使用像Lantern(蓝灯)这样的翻墙软件也还是会报错,在翻墙环境下也还是下载不了
针对这个错误我一一按照指定url去下载资源了并上传到百度网盘了,你只需动动手指下载下来对应目录拷贝过去即可...请不用谢我,我只是搬运工!😝
无法下载的资源
再次运行:
cd out/src/tools_webrtc/ios
./build_ios_libs.sh
编译成功:


WebRTC.framework(大小只有十几M)即我们要引入到iOS项目中的库(支持arm64和非arm64,以及x64指令集)!!!
WebRTC编译形成的库
来说说编译过程中遇到的报错问题:
权限问题:

1.3. 关于"翻墙"(更新于20171106)
最近,貌似很紧张,Lantern在某些网络下也不能用了,hosts也失效了,貌似有新的替代品,我目前推荐ShadowSocks用比较稳定,但是这里面的免费账号貌似半小时更新密码,很不方便,至于如何获取免费稳定的SS账号,以及实现ShadowSocks终端访问,这些我都给与了明确的方法,最后用SS应该全程稳定下载无压力实现的,就看你耐得住寂寞不,毕竟6GB左右的大小摆在那儿,需要耗费半天左右的时间,祝大家编译成功!!!
参考链接:
WebRTC
网友评论
1. 「它推荐使用Homebrew!」:到底是谁用了 Homebrew 啊,现在仍不能理解。
2. PATH 即使是当前用户目录也不要用「~」,用全路径,或者是作者「`pwd`」这种形式,总之最重要的是测试一下「gn」命令是否可用
3. 「./build.sh」这个命令是编译 MAC 平台的,后序里「./build_ios_libs.sh」才是编译 iOS 平台的(截图是对的,应该是写差了。另说一句当前编译 MAC 平台需要在「util.sh」文件中将「rtc_include_tests」设为「true」,否则编译不成功)
4. VPN 是可以全部下载的,蓝灯的问题有可能是因为它是依赖浏览器的 VPN,而不是全局的那种。
,端口什么的都不是我设置的,我只是把上面的命令行粘贴到了终端。,翻墙和没翻墙的都试过了,请问有解决办法么?
我是从github上面 pod的 apprtc,感觉老版本会有卡顿的问题