前言最近对 WebRTC IOS 端源码进行了下载和编译 , 网上针对 WebRTC iOS 端的编译文章基本都是几年前的 , 有些地方已经不适用于最新版的 WebRTC 的编译 , 简单记录下载&编译的过程 , 以 M93 版本为例 。
编译环境硬件:macBook Pro (Retina, 15-inch, Mid 2015)
系统:macOS Big Sur 11.5
安装 depot_tools
- depot_tools 是一套 google 用来编译 Chromium 或者 WebRTC 的构建工具 , 获取 depot_tools 源码前 , 需开启 VPN 服务 。
```如果出现如下错误 , 首先检查 VPN 是否连接成功 , 其次配置 macOS 终端代理
$ mkdir webrtc
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
```
文章插图
配置终端代理
在开启的 VPN 客户端偏好设置中配置信息如下:
文章插图
注意:配置终端代理只对当前终端有用 , 重启后需要重新配置
```
$ export http_proxy=http://127.0.0.1:10887
$ export https_proxy=http://127.0.0.1:10887
$ export all_proxy=http://127.0.0.1:10887
```
文章插图
配置环境变量
```检查是否配置成功
$ echo "export PATH=$PWD/depot_tools:$PATH" > $HOME/.bash_profile
$ source $HOME/.bash_profile
```
```安装 ninjaninja 是 WebRTC 的编译工具 。
$ echo $PATH
```
```复制到系统目录(也可配置坏境变量)
$ git clone git://github.com/martine/ninja.git
$ cd ninja/
$ ./bootstrap.py
```
```下载 WebRTC 源码设置要编译的平台到环境变量
$ sudo cp ninja /usr/local/bin/
$ sudo chmod a+rx /usr/local/bin/ninja
```
```下载源码
$ export GYP_DEFINES="OS=ios"
```
```指定分支(以 M93版本为例)
$ fetch --nohooks webrtc_ios
```
```分支版本可以在[Release Notes](
$ gclient sync -r 25e3fd53a79bfdb2bd647ee3a199eb9c3a71d271
```
https://github.com/webrtc/webrtc-org/blob/gh-pages/release-notes/index.md)中查找 , 目前最新的是M95版本 。
文章插图
编译 WebRTC 源码iOS 版本我们可以使用源码中自带的编译脚本 , 目录如下 , 不同的 WebRTC 版本路径可能不一样 , 脚本可根据需求自行配置 。
文章插图
```编译完成后可在 src/out_ios_libs 目录下找到WebRTC.framework
$ cd /Users/a1/Desktop/webrtc/src
$ /Users/a1/Desktop/webrtc/src/tools_webrtc/ios/build_ios_libs.py
```
生成 Example 并运行
```下载&编译操作源码
$ gn gen out/ios --args='target_os="ios" target_cpu="arm64" is_component_build=false ios_enable_code_signing=false' --ide=xcode
```
```
Last login: Tue Sep 14 12:49:30 on ttys001
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.Apple.com/kb/HT208050.
yushengzhudeMacBook-Pro:~ a1$ cd /Users/a1/Desktop/webrtc
$ ls
depot_tools
$ export PATH=$PATH:"/Users/a1/Desktop/webrtc/depot_tools"
$ export http_proxy=http://127.0.0.1:10887
$ export https_proxy=http://127.0.0.1:10887
$ export all_proxy=http://127.0.0.1:10887
$ export GYP_DEFINES="OS=ios"
$ fetch --nohooks webrtc_ios
Running: gclient root
WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will be created.
Running: gclient config --spec 'solutions = [
{
"name": "src",
"url": "https://webrtc.googlesource.com/src.git",
"deps_file": "DEPS",
"managed": False,
"custom_deps": {},
},
]
target_os = ["ios"]
'
Running: gclient sync --nohooks --with_branch_heads
________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://webrtc.googlesource.com/src.git /Users/a1/Desktop/webrtc/_gclient_src_mgr39v0v' in '/Users/a1/Desktop/webrtc'
推荐阅读
- IOS15,Safari浏览器广告一键消除
- 下一代的WiFi技术将至,但我们却感到忧心
- 万字长文!多图!结合DDD讲清楚编写技术方案的七大维度
- axios配置vue项目本地测试环境跨域解决方法
- 南瓜|罗缔发域分享生活中8个护发小妙招,你get了吗?
- 不再联系歌词分享
- 百万级QPS,支撑淘宝双11需要哪些技术
- 千千阙歌歌词分享
- FACEBOOK养号细节分享
- iphone5s可以升级到ios几点几-iphone5能升级到ios几-