Follow official WebRTC iOS development guide to sync official repo.
Note: all commands are executed on Python 2.x shell.
Change directory into src
, run:
git remote add cdnbye https://github.com/cdnbye/DataChannel.git
git fetch cdnbye
git checkout dc_only_ios
Then change directory into parent of src
, run gclient sync
.
Put tvosify-os.sh
and tvosify-sim.sh
in parent of src
, then run:
cd src && \
python tools_webrtc/ios/build_ios_libs.py --bitcode --arch arm64 x64 -o out/iphone_libs/ && \
gn gen out/tvos_arm64 --args='target_os = "ios" target_cpu = "arm64" ios_enable_code_signing = false use_xcode_clang = true is_component_build = false is_debug = false ios_deployment_target = "10.0" rtc_libvpx_build_vp9 = false enable_ios_bitcode = true use_goma = false enable_dsyms = true enable_stripping = true' && \
../tvosify-os.sh ./out/tvos_arm64 && \
ninja -C out/tvos_arm64 framework_objc && \
gn gen out/tvos_x64 --args='target_os = "ios" target_cpu = "x64" ios_enable_code_signing = false use_xcode_clang = true is_component_build = false is_debug = false ios_deployment_target = "10.0" rtc_libvpx_build_vp9 = false enable_ios_bitcode = true use_goma = false enable_dsyms = true enable_stripping = true' && \
../tvosify-sim.sh ./out/tvos_x64 && \
ninja -C out/tvos_x64 framework_objc
Change directory into src
, run:
git checkout cdnbye-mac
Then change directory into parent of src
, run gclient sync
.
Then run:
cd src && \
gn gen out/mac_x64 --args='target_os = "mac" target_cpu = "x64" is_component_build = false is_debug = false use_goma = false enable_dsyms = true enable_stripping = true' && \
ninja -C out/mac_x64 mac_framework_objc && \
gn gen out/mac_arm64 --args='target_os = "mac" target_cpu = "arm64" is_component_build = false is_debug = false use_goma = false enable_dsyms = true enable_stripping = true' && \
ninja -C out/mac_arm64 mac_framework_objc && \
lipo -create out/mac_x64/WebRTC.framework/WebRTC out/mac_arm64/WebRTC.framework/WebRTC -output out/WebRTC-mac-fat
Note: since the stripped version is a little bit old, which doesn't support build for macOS arm64, so macOS uses a different version, so to macOS version after iOS/tvOS version, or vice-versa, you need to checkout branch and run gclient sync
again.
In directory src
, run:
rm -rf out/WebRTC.xcframework
xcodebuild -create-xcframework \
-framework out/iphone_libs/arm64_libs/WebRTC.framework \
-framework out/iphone_libs/x64_libs/WebRTC.framework \
-framework out/tvos_arm64/WebRTC.framework \
-framework out/tvos_x64/WebRTC.framework \
-framework out/mac_fat/WebRTC.framework \
-output out/WebRTC.xcframework