Skip to content

[WebRTC]Upgrade to m148#1192

Open
ipavlidakis wants to merge 1 commit into
developfrom
iliaspavlidakis/upgrade-webrtc-to-m148
Open

[WebRTC]Upgrade to m148#1192
ipavlidakis wants to merge 1 commit into
developfrom
iliaspavlidakis/upgrade-webrtc-to-m148

Conversation

@ipavlidakis

@ipavlidakis ipavlidakis commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

🔗 Issue Links

Resolves https://linear.app/stream/issue/IOS-1876/webrtcmigrate-to-m148

🎯 Goal

Describe why we are making this change.

📝 Summary

Provide bullet points with the most important changes in the codebase.

🛠 Implementation

Provide a detailed description of the implementation and explain your decisions if you find them relevant.

🎨 Showcase

Add relevant screenshots and/or videos/gifs to easily see what this PR changes, if applicable.

Before After
img img

🧪 Manual Testing Notes

Explain how this change can be tested manually, if applicable.

☑️ Contributor Checklist

  • I have signed the Stream CLA (required)
  • This change follows zero ⚠️ policy (required)
  • This change should receive manual QA
  • Changelog is updated with client-facing changes
  • New code is covered by unit tests
  • Comparison screenshots added for visual changes
  • Affected documentation updated (tutorial, CMS)

🎁 Meme

Provide a funny gif or image that relates to your work on this pull request. (Optional)

Summary by CodeRabbit

  • Updates
    • Updated the bundled WebRTC framework to version 148.0.0.
    • Ensured Swift Package Manager, CocoaPods, and Xcode integrations use the same WebRTC release.
    • Includes the latest upstream WebRTC fixes and improvements.

@ipavlidakis ipavlidakis self-assigned this Jul 13, 2026
@ipavlidakis
ipavlidakis requested a review from a team as a code owner July 13, 2026 08:16
@ipavlidakis ipavlidakis added the enhancement New feature or request label Jul 13, 2026
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR updates all Swift Package, Xcode project, and CocoaPods WebRTC references from version 145.8.0 to 148.0.0.

Changes

WebRTC version update

Layer / File(s) Summary
Align WebRTC dependency references
Package.swift, StreamVideo.xcodeproj/project.pbxproj, StreamVideo-XCFramework.podspec, StreamVideo.podspec
Swift Package and Xcode project pins, plus CocoaPods framework download URLs, now target WebRTC release 148.0.0.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

Suggested reviewers: martinmitrevski

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly states the main change: upgrading WebRTC to m148.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch iliaspavlidakis/upgrade-webrtc-to-m148

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@StreamVideo-XCFramework.podspec`:
- Line 27: Harden the WebRTC archive download and extraction steps in
StreamVideo-XCFramework.podspec lines 25-29 and StreamVideo.podspec lines 26-30:
make both curl commands fail on HTTP errors and validate the downloaded zip
against a trusted checksum before unzipping, aborting on any failure. Keep the
existing archive source and extraction flow otherwise unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5a71cfa0-26d3-454a-9d23-812a8a05d98c

📥 Commits

Reviewing files that changed from the base of the PR and between d7426ef and 9f37437.

⛔ Files ignored due to path filters (1)
  • Sources/StreamVideo/Generated/SystemEnvironment+Version.swift is excluded by !**/generated/**
📒 Files selected for processing (4)
  • Package.swift
  • StreamVideo-XCFramework.podspec
  • StreamVideo.podspec
  • StreamVideo.xcodeproj/project.pbxproj

spec.prepare_command = <<-CMD
mkdir -p Frameworks/
curl -sL "https://github.com/GetStream/stream-video-swift-webrtc/releases/download/145.8.0/StreamWebRTC.xcframework.zip" -o Frameworks/StreamWebRTC.zip
curl -sL "https://github.com/GetStream/stream-video-swift-webrtc/releases/download/148.0.0/StreamWebRTC.xcframework.zip" -o Frameworks/StreamWebRTC.zip

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the relevant podspecs around the cited lines.
for f in StreamVideo-XCFramework.podspec StreamVideo.podspec; do
  echo "===== $f ====="
  nl -ba "$f" | sed -n '1,120p'
  echo
done

# Locate all WebRTC download/extraction commands and any checksum handling.
rg -n --hidden --no-ignore-vcs -S \
  'curl -sL|curl --fail|sha256|shasum|openssl dgst|prepare_command|StreamWebRTC\.xcframework\.zip|StreamWebRTC\.zip' \
  StreamVideo-XCFramework.podspec StreamVideo.podspec

Repository: GetStream/stream-video-swift

Length of output: 250


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python3 - <<'PY'
from pathlib import Path

files = ["StreamVideo-XCFramework.podspec", "StreamVideo.podspec"]
for f in files:
    print(f"===== {f} =====")
    lines = Path(f).read_text().splitlines()
    for i, line in enumerate(lines, 1):
        if "curl -sL" in line or "prepare_command" in line or "sha256" in line or "StreamWebRTC" in line:
            start = max(1, i - 4)
            end = min(len(lines), i + 6)
            for j in range(start, end + 1):
                print(f"{j:4}: {lines[j-1]}")
            print()
PY

rg -n -S 'curl -sL|curl --fail|sha256|shasum|openssl dgst|prepare_command|StreamWebRTC\.xcframework\.zip|StreamWebRTC\.zip' \
  StreamVideo-XCFramework.podspec StreamVideo.podspec

Repository: GetStream/stream-video-swift

Length of output: 5524


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python3 - <<'PY'
import urllib.request

url = "https://raw.githubusercontent.com/GetStream/stream-video-swift-webrtc/148.0.0/Package.swift"
print("FETCH", url)
data = urllib.request.urlopen(url, timeout=20).read().decode("utf-8")
for needle in ["acc7330ece327c68dfa5b90d82c49dcec9847ef13b1a6b989c0a2de16d9e1ff0", "StreamWebRTC.xcframework.zip"]:
    idx = data.find(needle)
    print(needle, "FOUND" if idx != -1 else "NOT_FOUND")
    if idx != -1:
        start = max(0, idx - 120)
        end = min(len(data), idx + 120)
        print(data[start:end])
        print()
PY

Repository: GetStream/stream-video-swift

Length of output: 2858


🌐 Web query:

GetStream stream-video-swift-webrtc 148.0.0 Package.swift checksum StreamWebRTC.xcframework.zip acc7330ece327c68dfa5b90d82c49dcec9847ef13b1a6b989c0a2de16d9e1ff0

💡 Result:

As of July 13, 2026, there is no official GetStream stream-video-swift-webrtc release version 148.0.0 [1][2]. The latest releases in the GetStream WebRTC repository track specific WebRTC versions (e.g., version 145.10.0 was released on June 10, 2026) [2]. Additionally, the checksum acc7330ece327c68dfa5b90d82c49dcec9847ef13b1a6b989c0a2de16d9e1ff0 does not correspond to any known StreamWebRTC.xcframework.zip file in the GetStream ecosystem [3][1][2]. The provided string appears unrelated to the standard Swift Package Manager checksums used by the GetStream SDK, which are typically associated with specific binary release assets on GitHub [3][2]. If you are encountering this checksum or version number in a project configuration, it may be a manual error, an unofficial patch, or a misconfiguration. It is recommended to use the official versions and checksums provided in the GetStream releases page [1].

Citations:


Harden both WebRTC download steps. StreamVideo-XCFramework.podspec#L25-L29 and StreamVideo.podspec#L26-L30 still download and unzip the archive without --fail or checksum validation; add fail-closed curl handling and verify the zip before extraction.

📍 Affects 2 files
  • StreamVideo-XCFramework.podspec#L27-L27 (this comment)
  • StreamVideo.podspec#L28-L28
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@StreamVideo-XCFramework.podspec` at line 27, Harden the WebRTC archive
download and extraction steps in StreamVideo-XCFramework.podspec lines 25-29 and
StreamVideo.podspec lines 26-30: make both curl commands fail on HTTP errors and
validate the downloaded zip against a trusted checksum before unzipping,
aborting on any failure. Keep the existing archive source and extraction flow
otherwise unchanged.

@github-actions

Copy link
Copy Markdown
1 Warning
⚠️ Please be sure to complete the Contributor Checklist in the Pull Request description

Generated by 🚫 Danger

@github-actions

Copy link
Copy Markdown

Public Interface

🚀 No changes affecting the public interface.

@Stream-SDK-Bot

Copy link
Copy Markdown
Collaborator

SDK Size

title develop branch diff status
StreamVideo 10.56 MB 10.56 MB 0 KB 🟢
StreamVideoSwiftUI 2.47 MB 2.47 MB 0 KB 🟢
StreamVideoUIKit 2.6 MB 2.6 MB 0 KB 🟢
StreamWebRTC 11.87 MB 45.9 MB +34848 KB 🔴

@martinmitrevski martinmitrevski left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's an issue with the size, plus some of the checks are failing

@ipavlidakis

Copy link
Copy Markdown
Contributor Author

The sizing issue it's probably because the current m148 release is debug including dsyms. AS this is a releases just for internal testing we can expect that prior or releasing m148 we will make a new release build that won't have this size difference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants