-
At least 30 GB of free disk space
-
Matching macOS and Xcode version (see Versions)
-
Change to your iOS-Project folder
cd /path/to/your/ios-project
-
Create a new folder and go into it
mkdir WebRTC-build cd WebRTC-build
-
Clone depot tools and add them to your current
PATH
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=$(PWD)/depot_tools:$PATH
-
Choose and set WebRTC and patch commit to use (see Versions below)
export COMMIT=commit_id export PATCH_COMMIT=patch_commit_id # e.g. # export COMMIT=b83487f08ff836437715b488f73416215e5570dd # export PATCH_COMMIT=e8c6ee36392fb167a96d9c808f6d4638510c3178
-
Fetch a regular WebRTC checkout with the iOS-specific parts added. (This might take a while...)
fetch --nohooks webrtc_ios
-
Get patches
git clone https://github.com/threema-ch/webrtc-build-docker.git cd webrtc-build-docker
(The patches are part of our WebRTC PeerConnection Build Script.)
-
Reset applied patches
cd WebRTC-build/src git reset --hard
-
Add depot_tools to your current
PATH
export PATH=$(PWD)/depot_tools:$PATH
-
Choose and set WebRTC and patch commit to use (see Versions below)
export COMMIT=commit_id export PATCH_COMMIT=patch_commit_id
-
Update patches
cd ../webrtc-build-docker git checkout master && git pull origin master
-
Check out patch commit
git checkout $PATCH_COMMIT
-
Go into src folder and checkout WebRTC. (This might take a while...)
cd ../src git checkout master && git pull && git checkout $COMMIT && gclient sync
-
Apply patches
for i in ../webrtc-build-docker/patches/*.patch; do patch -p1 < $i; done
-
Build
tools_webrtc/ios/build_ios_libs.py --output-dir ../out/
-
Remove existing framework and move to correct location
rm -r ../../WebRTC.xcframework mv ../out/WebRTC.xcframework ../../
cd ../..
rm -r WebRTC-build
iOS App Version | WebRTC Commit | Patch Commit | macOS Version | Xcode Version | WebRTC Binary Version |
---|---|---|---|---|---|
4.8.0 (2741) | ffd9187dc0d9211ad52173bf0daa5001ca7d45ee (m100) | 92e9bfefac342b2c2547cd860844f9bf7fd36252 | 12.4 (21F79) | 13.2.1 (13C100) | 100.0.0 |