美文网首页iOS音视频(直播 音频 视频)程序员iOS Developer
iOS音视频开源框架WebRTC入门-编译(前序)

iOS音视频开源框架WebRTC入门-编译(前序)

作者: tjfeng88 | 来源:发表于2017-06-05 18:21 被阅读1060次

系列

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

开启无脑式的刷屏模式,喝杯☕️休息哈...
但是,最后报错了:

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

编译成功:


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

1.3. 关于"翻墙"(更新于20171106)

最近,貌似很紧张,Lantern在某些网络下也不能用了,hosts也失效了,貌似有新的替代品,我目前推荐ShadowSocks用比较稳定,但是这里面的免费账号貌似半小时更新密码,很不方便,至于如何获取免费稳定的SS账号,以及实现ShadowSocks终端访问,这些我都给与了明确的方法,最后用SS应该全程稳定下载无压力实现的,就看你耐得住寂寞不,毕竟6GB左右的大小摆在那儿,需要耗费半天左右的时间,祝大家编译成功!!!

参考链接:
WebRTC

相关文章

网友评论

  • bf82f0303c09:编译成功。必须说以前的方法花好几天才能编译成功,今天这个基本只用了一天。说几个遇到的问题,都是很简单的问题,有些却折腾了一些时间。
    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,而不是全局的那种。
    tjfeng88:同时感谢你指出的文章中的错误描述
    tjfeng88:@南在生活 亲身经历的满满都是经验 挺好的 Homebrew是Mac系统下比较好用的安装利器 很轻松安装一些软件和插件 也能统一管理升级与卸载 其实蓝灯设置里面也有管理所有流量 这个流量不晓得包不包括出浏览器以外的流量
    bf82f0303c09:1 找到了,是 build 时安装依赖的时候
  • 张芳涛:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git这个步骤报下面的错误:fatal: unable to access 'https://chromium.googlesource.com/chromium/tools/depot_tools.git/': Failed to connect to 127.0.0.1 port 1080: Connection refused
    ,端口什么的都不是我设置的,我只是把上面的命令行粘贴到了终端。,翻墙和没翻墙的都试过了,请问有解决办法么?
    tjfeng88:@张芳涛 文章更新了 麻烦请再次阅读一遍 不好意思
    tjfeng88:@CoderXLL 文章更新了 麻烦请再次阅读一遍 不好意思
    CoderXLL:我的也是:cry:
  • 西西西瓜sama:您好,请问您编译的是最新版本么.是的话 想直接用了...
    我是从github上面 pod的 apprtc,感觉老版本会有卡顿的问题
    西西西瓜sama:@BossKing10086 好的 非常感谢你 :smile:
    tjfeng88:@西西西瓜sama 亦或你按照我写文章的流程去下载编译一遍最新的代码 以后你可以自己去更新了
    tjfeng88:@西西西瓜sama 我写文章的时候下载最新的 你可以尝试到百度网盘下载静态库 试试 看能不能解决你说的额问题
  • _白丁_:田大神威武!

本文标题:iOS音视频开源框架WebRTC入门-编译(前序)

本文链接:https://www.haomeiwen.com/subject/cbnifxtx.html