1.安装depot_tools
1.下载:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
vim ~/.zshrc
- 把depot_tools 设置到PATH中:
export PATH=$PATH:/Users/wangjian/Desktop/Work/webrtc_ios/depot_tools
- 设置生效:
source ~/.zshrc</pre>
2.安装ninja
git clone https://github.com/martine/ninja.git
cd ninja/
./bootstrap.py
sudo cp ninja /usr/local/bin/
sudo chmod a+rx /usr/local/bin/ninja</pre>
3.下载WebRTC源码
1.clone
fetch --nohooks webrtc_ios
2.同步代码
gclient sync
3.这里会同步失败多次,就执行下面的更新命令
tools/clang/scripts/update.py
- 同步4389分支的代码
git checkout -b 4389 branch-heads/4389
注意:Mac下载源码时会一直报错,导致包没有完全下载下来,后面编译也报错,最后从同事Linux环境的电脑拷贝了一份完整的代码src目录文件
image.png
4.编译源码
- 编译framework
python tools_webrtc/ios/build_ios_libs.py --build_config 'release'
- 生成Xcode工程
gn gen out/ios --args='target_os="ios" target_cpu="arm64" is_component_build=false ios_enable_code_signing=false' --ide=Xcode
- 生成xcode工程后可以这样编译出framework
ninja -C out/ios framework_objc
踩坑:
1 . depot_tools路径一定要设置对
2. 解决clang++编译问题
curl https://commondatastorage.googleapis.com/chromium-browser-clang/Mac/clang-359912-2.tgz -o third_party/llvm-build/clang.tgz
ls third_party/llvm-build/
mkdir third_party/llvm-build/Release+Asserts
tar zxvf third_party/llvm-build/clang.tgz -C third_party/llvm-build/Release+Asserts
-
编译报错
1.在
src/tools_webrtc/ios/build_ios_libs.py中设置支持持arm64,即DEFAULT_ARCHS = ENABLED_ARCHS = ['arm64'],支持64位真机足够,其他的模拟器没必要支持,否则打包时间很长2.在
[BUILD.gn](http://build.gn/)中把-Wno-misleading-indentation,-Wno-implicit-int-float-conversion,-Wno-final-dtor-non-final-class,-Wno-builtin-assume-aligned-alignment,-Wno-deprecated-copy这些设置全部注释掉。不然会出现错误。
image.png
- 打包framework的时候出现一下报错
image.png
输入以下命令即可:
echo 'script_executable = "vpython"' >> .gn
4. 编译报错出现://webrtc.gni:504:32: Assignment had no effect.
image.png
在参数后加上 rtc_include_tests=false
gn gen out/ios --args='target_os="ios" target_cpu="arm64" is_component_build=false ios_enable_code_signing=false rtc_include_tests=false' --ide=xcode</pre>
4. ninja building 错误
. ./bootstrap.py最新版可能不是这个,使用:./configure.py --bootstrap
2. macOS Monterey 12.3中有可能出现env: python: No such file or directory,具体次修改参考:https://dunky-z.github.io/2021/08/03/%E8%A7%A3%E5%86%B3-usr-bin-env-python-No-such-file-or-directory/
5.Mac系统升级之后python版本也升级了,出现python找不到的问题
image.png
由于webrtc切换的是旧的分支,所以有些兼容性问题比较麻烦,直接下载一个2.7.18版本的python即可













网友评论