注1:本文档适用webrtc-ios源码的下载和编译;
注2:下载编译所使用的操作系统为mac 终端;
Chromium和Chromium OS统一使用一个叫做depot_tools的工具的对其源码进行checkout的管理(这有点类似于Android使用repo工具对其源码进行管理一样),作为Chromium其中一个子模块的webrtc而言,也是使用这个工具对其代码进行checkout。这个depot_rools包里面包含了gclient、gcl、git-cl、repo等工具。
下载depot_tools工具包并放到标准路径PATH上:
首先确保mac上安装了Git 2.2.1以上版本,以及Python 2.7以上版本;
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
修改root目录中的.bash_profile文件,.bash_profile文件是一个隐藏文件,可在root目录下使用命令ls -a将隐藏文件显示出来,然后vi .bash_profile 进行编辑,增加:export PATH=$PATH:‘pwd’/depot_tools:$PATH,然后按Esc + shift + 冒号,输入wq,进行保存。注意一定要把depot_tools的位置放在PATH的最前面;
参考:https://dev.chromium.org/developers/how-tos/install-depot-tools
下载webrtc-ios代码及编译流程(首先要先按照以上步骤下载depot_tools ):
mkdir webrtc-ios
cd webrtc-ios
fetch --nohooks webrtc_ios
gclient sync//代码下载过程中如果发生中断,使用gclient sync同步就可以了
cd src/build/install-build-deps.sh(只需要在第一次gclient sync以后执行一次)
1.编译Mac OS AppRTCMobile
gn gen out/Debug
ninja -C out/Debug
2编译64位真机 AppRTCMobile
gn gen out/ios_64 --args='target_os="ios" target_cpu="arm64"'
ninja -C out/ios_64
安装AppRTCMobile :
WebRTC代码后期更新的三种方式(在src目录下):
当前代码在某个分支下进行维护,使用git pull可以拉取远程仓库的最新更新;
当前代码不在分支下,使用git fetch取下来最新的git仓库更新;
需要定期更新依赖或者其他第三方库,使用gclient sync命令;
参考:https://webrtc.org/native-code/ios/
附录:
1.webrtc-ios版本下载过程中 $ gclient sync时出现的问题
问题描述:
出现Hook 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --quiet --bucket chromium-webrtc-resources src/resources' took 8760.95 secs 后,不执行了。
解决办法:
找到src/DEPS文件,将下面这几行代码注释掉
{
# Download test resources, i.e. video and audio files from Google Storage.
'pattern': '.',
'action': ['download_from_google_storage',
'--directory',
'--recursive',
'--num_threads=10',
'--no_auth',
'--quiet',
'--bucket', 'chromium-webrtc-resources',
'src/resources']
},