- 安裝 depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
把 depot_tools 加入環(huán)境變量
export PATH=`pwd`/depot_tools:"$PATH"
- clone 源代碼
創(chuàng)建一個文件夾用來存放 WebRTC 源代碼,比如 mkdir ~/webrtc草娜, 進入剛才創(chuàng)建的文件夾執(zhí)行
fetch --nohooks webrtc_ios
gclient sync
然后就是漫長的等待中...
完全 sync 完成后會在 webrtc 目錄下生成一個 src 目錄剃法,進入 src 目錄會看到類似 https://chromium.googlesource.com/external/webrtc/+/master 這個樣的目錄唐础,只不過多了 third-party 的一些依賴文件, branch 57 之后 sync 很快哦
- 編譯 framework
運行命令 gclient runhooks
進入 src 目錄晦款,然后執(zhí)行
./tools_webrtc/ios/build_ios_libs.py
就可以編譯出 framework 文件了规个。
可以通過 ./tools_webrtc/ios/build_ios_libs.py --help
查看編譯選項
默認會編譯出全部架構的 ['arm64', 'arm', 'x64', 'x86'] 的 framework 文件凤薛,如果想要編譯成靜態(tài)庫也可以加上 -b static_only
,如果只想編譯 ARM 的架構可以 ./tools_webrtc/ios/build_ios_libs.py --arch {'arm64','arm'}
(老版本的目錄為 tools-webrtc), Android 編譯使用 ./tools_webrtc/android/build_aar.py --arch {'armeabi-v7a','arm64-v8a'}
- 使用 Xcode 查看和編譯 WebRTC 源碼
WebRTC 不支持 Xcode 原生編譯诞仓,用 Xcode 編譯也是調用的 ninja 去編譯
先生成 workspace 文件缤苫,還是進入上面提到的 src 的目錄
gn gen out/ios --args='target_os="ios" target_cpu="arm64" is_component_build=false' --ide=xcode
打開工程文件,就可以編譯和查看源碼了
open -a Xcode.app out/ios/all.xcworkspace
代碼更新
以后更新 webrtc 代碼只需要進入 src 目錄git pull
就行墅拭, 定期的更新依賴活玲,使用gclient sync
有不能編譯成功的可以留言哦 ??
相關 App 碰碰 http://www.pengpeng.us
本文參考 https://webrtc.org/native-code