You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* use fishjam custom binary
* Sync package-lock.json with v0.27.0 bump
CI's `npm install` regenerates the lockfile, and the format check
fails on the diff. Commit the lockfile update so CI is clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* remove FishjamRTCAudioDevice
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+43-1Lines changed: 43 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,13 +39,55 @@ Software encode/decode factories have been enabled by default.
39
39
40
40
## WebRTC Revision
41
41
42
-
* Currently used revision: [M124](https://github.com/jitsi/webrtc/tree/M124)
42
+
* Currently used revision: [M124 (Fishjam fork)](https://github.com/fishjam-cloud/webrtc/tree/fishjam-m124)
43
+
* iOS dependency: [`FishjamWebRTC`](https://cocoapods.org/pods/FishjamWebRTC) — Fishjam's custom WebRTC build with the `defer mic permission` patch (replaces `JitsiWebRTC`).
43
44
* Supported architectures
44
45
* Android: armeabi-v7a, arm64-v8a, x86, x86_64
45
46
* iOS: arm64, x86_64
46
47
* tvOS: arm64
47
48
* macOS: arm64, x86_64
48
49
50
+
## Maintaining the iOS WebRTC build (FishjamWebRTC)
51
+
52
+
The iOS side ships against `FishjamWebRTC` — a CocoaPods pod published from [`fishjam-cloud/webrtc`](https://github.com/fishjam-cloud/webrtc) that wraps a prebuilt `WebRTC.xcframework`. Source patches live on the `fishjam-m124` branch; the podspec and release tooling live on `master`.
53
+
54
+
### When to cut a new release
55
+
56
+
Cut a new `FishjamWebRTC` version when **any of the following** happens:
57
+
58
+
- A new patch lands on `fishjam-m124` that we need on the client (e.g. another `audio_device_ios.mm` change, a fix to the network interfaces path, a privacy-manifest update).
59
+
- We rebase `fishjam-m124` onto a newer jitsi/webrtc tag (e.g. moving from `v124.0.2` to `v124.0.3`).
60
+
- A security advisory in upstream WebRTC requires picking up a fix.
61
+
62
+
You do **not** need to cut a new `FishjamWebRTC` for changes that only touch this RN wrapper (`ios/**.{h,m,swift}`, JS sources). Those ship as a normal `@fishjam-cloud/react-native-webrtc` npm bump.
63
+
64
+
### Versioning
65
+
66
+
`<upstream-version>.<fishjam-patch-N>`, e.g. `124.0.2.1`.
67
+
68
+
- First three parts = the jitsi upstream version the build is patched on top of.
69
+
- Fourth part = Fishjam patch counter against that base, starts at `1`, increments per release.
70
+
- On upstream rebase (e.g. jitsi ships `124.0.3`), reset counter: next release is `124.0.3.1`.
71
+
- Pin with `~> 124.0.2.0` to accept any Fishjam patch on top of jitsi `124.0.2`, or pin exact.
72
+
73
+
### How to cut a release
74
+
75
+
Full runbook (build, tag, GH release, trunk publish, smoke test) lives in [`fishjam-cloud/webrtc`'s `RELEASING.md`](https://github.com/fishjam-cloud/webrtc/blob/master/RELEASING.md) on the `master` branch. TL;DR:
76
+
77
+
1. On a macOS build host with [`depot_tools`](https://chromium.googlesource.com/chromium/tools/depot_tools.git) + a `fetch webrtc_ios` checkout, switch the gclient `src/` to `fishjam-m124`, run `gclient sync`, then `tools_webrtc/ios/build_ios_libs.py --build_config release --arch device:arm64 simulator:arm64 simulator:x64`.
78
+
2. Validate the patch is in the built binary: `strings WebRTC.xcframework/*/WebRTC.framework/WebRTC | grep -c "<unique-string-from-patch>"` — every slice must have a non-zero count. (Release builds strip C++ symbols, so use `strings`, not `nm`.)
79
+
3. Zip the xcframework as `FishjamWebRTC.xcframework.zip`, tag `vX.Y.Z.N` on `fishjam-m124`, push, and `gh release create` with the zip attached.
80
+
4. On `master`: bump `s.version` in `ios/FishjamWebRTC.podspec` to match, commit, push.
0 commit comments