ios,android: move to prefixed webrtc - #455
Open
davidliu wants to merge 3 commits into
Open
Conversation
davidliu
requested review from
hiroshihorie and
xianshijing-lk
as code owners
September 9, 2026 09:26
🦋 Changeset detectedLatest commit: 9fd387c The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
| implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" | ||
| api 'com.github.davidliu:audioswitch:89582c47c9a04c62f90aa5e57251af4800a62c9a' | ||
| api 'io.github.webrtc-sdk:android:144.7559.04' | ||
| api 'io.github.webrtc-sdk:android-prefixed:144.7559.15' |
There was a problem hiding this comment.
🟡 Declared peer installs incompatible WebRTC bridge
The declared peer dependency still accepts an unprefixed bridge after android-prefixed becomes mandatory. Clean Android and iOS consumer builds fail.
Prompt for agents
The prefixed native sources require a prefixed release of @livekit/react-native-webrtc, but package.json still declares ^144.1.2 as both the peer and development dependency. example/package.json and ci/package.json also retain that version, and yarn.lock resolves it to 144.1.2. That release depends on the unprefixed Android artifact and WebRTC-SDK pod, so it cannot provide the prefixed types used by this PR. Update all manifests and the lockfile to the first released prefixed bridge version, keeping the root peer and development ranges synchronized. Regenerate the example Podfile.lock from that dependency rather than editing its resolved pod entries independently.
Was this helpful? React with 👍 or 👎 to provide feedback.
hiroshihorie
previously approved these changes
Sep 9, 2026
hiroshihorie
dismissed
their stale review
September 9, 2026 10:39
Dismissing approval for now, will re-review.
LiveKitWebRTC 144.7559.15 is published on the CocoaPods trunk, so consumers need no extra source lines in their Podfile. Drop the source instructions from the changeset and revert the README, example, and CI Podfiles to their state on main.
LiveKitWebRTC now resolves from the CocoaPods trunk, so the lockfile no longer references the podspecs source and its checksum matches the reverted Podfile.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrates the native code to the LiveKit-prefixed libwebrtc builds:
io.github.webrtc-sdk:android-prefixedon Android and the
LiveKitWebRTCpod on iOS, both at144.7559.15.The change is a symbol rename, with no behavior change and no change to the JS/TS API.
org.webrtc.*imports becomelivekit.org.webrtc.*.WebRtcAudioTrackHelpermoves tolivekit.org.webrtc.audioso it keeps its package-private access toJavaAudioDeviceModule.audioOutput.LKprefix (RTCAudioSession→LKRTCAudioSession,RTCAudioRenderer→LKRTCAudioRenderer,RTCAudioBuffer→LKRTCAudioBuffer, etc.) and imports movefrom
<WebRTC/...>to<LiveKitWebRTC/...>. Header filenames are unchanged.Changeset is
major:ios/Headers/exposesLKRTCAudioRenderer,LKRTCAudioBuffer, andLKRTCDefaultAudioProcessingModuleto native integrators, so this breaks the native public API eventhough the JS API is untouched.
Consumer impact
None on the dependency-resolution side.
LiveKitWebRTC144.7559.15is published on the CocoaPodstrunk and
android-prefixedis on Maven Central, so apps need no Podfile or Gradle repository changes.Native integrations must migrate to the prefixed symbols (see the changeset):
org.webrtc.*becomeslivekit.org.webrtc.*on Android including any-keep class org.webrtc.**ProGuard rules, andlibwebrtc Objective-C types gain the
LKprefix on iOS. Pure-JS apps need no changes.Before merging
@livekit/react-native-webrtcinpackage.json(dev + peer),example/package.json, andci/package.json