From a08c6eecc40dce290b108bb9bb53040c0b478077 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 8 Mar 2023 16:26:10 +0000 Subject: [PATCH 01/74] Updated files for release M111 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 99030fd000..d0fb8f5c7a 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/110.0.0/WebRTC-M110.0.0.xcframework.zip", - checksum: "9a74ee5412f8ee5d6b407ea51c44c17484c05d0b3d346d737fbb1fb9ff278a80" + url: "https://github.com/stasel/WebRTC/releases/download/111.0.0/WebRTC-M111.xcframework.zip", + checksum: "b6b1b7924e539ae32286654509cc4e96465de399274d4a63bf0d2faae6f3a85b" ), ] ) diff --git a/README.md b/README.md index f9c028a2e1..fc5b17d2d3 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("110.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("111.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 52f72f7a67..61f150bff8 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "110.0.0" + spec.version = "111.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/110.0.0/WebRTC-M110.0.0.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/111.0.0/WebRTC-M111.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 204b3bb72a..c795266a93 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -8,6 +8,7 @@ "109.0.0": "https://github.com/stasel/WebRTC/releases/download/109.0.0/WebRTC-M109.xcframework.zip", "109.0.1": "https://github.com/stasel/WebRTC/releases/download/109.0.1/WebRTC-M109.0.1.xcframework.zip", "110.0.0": "https://github.com/stasel/WebRTC/releases/download/110.0.0/WebRTC-M110.xcframework.zip", + "111.0.0": "https://github.com/stasel/WebRTC/releases/download/111.0.0/WebRTC-M111.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From c0ca0cfb65bc08b947f9058cb97aaa8b924c6d0b Mon Sep 17 00:00:00 2001 From: runner Date: Fri, 14 Apr 2023 01:14:06 +0000 Subject: [PATCH 02/74] Updated files for release M112 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index d0fb8f5c7a..c7035a5f5f 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/111.0.0/WebRTC-M111.xcframework.zip", - checksum: "b6b1b7924e539ae32286654509cc4e96465de399274d4a63bf0d2faae6f3a85b" + url: "https://github.com/stasel/WebRTC/releases/download/112.0.0/WebRTC-M112.xcframework.zip", + checksum: "d7e6b2d667a346182803f5d3d80f1487ec1f43ed0a630a96aaedfe746c5780eb" ), ] ) diff --git a/README.md b/README.md index fc5b17d2d3..2a66d80960 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("111.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("112.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 61f150bff8..06cead4a4e 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "111.0.0" + spec.version = "112.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/111.0.0/WebRTC-M111.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/112.0.0/WebRTC-M112.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index c795266a93..e5cbe03660 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -9,6 +9,7 @@ "109.0.1": "https://github.com/stasel/WebRTC/releases/download/109.0.1/WebRTC-M109.0.1.xcframework.zip", "110.0.0": "https://github.com/stasel/WebRTC/releases/download/110.0.0/WebRTC-M110.xcframework.zip", "111.0.0": "https://github.com/stasel/WebRTC/releases/download/111.0.0/WebRTC-M111.xcframework.zip", + "112.0.0": "https://github.com/stasel/WebRTC/releases/download/112.0.0/WebRTC-M112.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 32526e6758a3c5827d871f5a931d20b9132bd1ea Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 3 May 2023 17:43:24 +0000 Subject: [PATCH 03/74] Updated files for release M113 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index c7035a5f5f..cb8206c3e6 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/112.0.0/WebRTC-M112.xcframework.zip", - checksum: "d7e6b2d667a346182803f5d3d80f1487ec1f43ed0a630a96aaedfe746c5780eb" + url: "https://github.com/stasel/WebRTC/releases/download/113.0.0/WebRTC-M113.xcframework.zip", + checksum: "8d7afcd3ff5626205784f63765bd7e363eb02be61a6e8c99777771dedcfed319" ), ] ) diff --git a/README.md b/README.md index 2a66d80960..1d7fd239f7 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("112.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("113.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 06cead4a4e..70b7480288 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "112.0.0" + spec.version = "113.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/112.0.0/WebRTC-M112.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/113.0.0/WebRTC-M113.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index e5cbe03660..89190e8bb8 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -10,6 +10,7 @@ "110.0.0": "https://github.com/stasel/WebRTC/releases/download/110.0.0/WebRTC-M110.xcframework.zip", "111.0.0": "https://github.com/stasel/WebRTC/releases/download/111.0.0/WebRTC-M111.xcframework.zip", "112.0.0": "https://github.com/stasel/WebRTC/releases/download/112.0.0/WebRTC-M112.xcframework.zip", + "113.0.0": "https://github.com/stasel/WebRTC/releases/download/113.0.0/WebRTC-M113.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 938564aac1e2e810ffb4931d93cf67e00c5ad679 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 31 May 2023 16:09:14 +0000 Subject: [PATCH 04/74] Updated files for release M114 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index cb8206c3e6..dbb56f68e7 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/113.0.0/WebRTC-M113.xcframework.zip", - checksum: "8d7afcd3ff5626205784f63765bd7e363eb02be61a6e8c99777771dedcfed319" + url: "https://github.com/stasel/WebRTC/releases/download/114.0.0/WebRTC-M114.xcframework.zip", + checksum: "023b2c9fb53ff014607ef2afe87e3a83c2632555562783ced682715e85da0cd9" ), ] ) diff --git a/README.md b/README.md index 1d7fd239f7..a6217431d4 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("113.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("114.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 70b7480288..ee838fdacf 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "113.0.0" + spec.version = "114.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/113.0.0/WebRTC-M113.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/114.0.0/WebRTC-M114.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 89190e8bb8..b216da6196 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -11,6 +11,7 @@ "111.0.0": "https://github.com/stasel/WebRTC/releases/download/111.0.0/WebRTC-M111.xcframework.zip", "112.0.0": "https://github.com/stasel/WebRTC/releases/download/112.0.0/WebRTC-M112.xcframework.zip", "113.0.0": "https://github.com/stasel/WebRTC/releases/download/113.0.0/WebRTC-M113.xcframework.zip", + "114.0.0": "https://github.com/stasel/WebRTC/releases/download/114.0.0/WebRTC-M114.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 2c1113a11aac4b1c2a3271f939f810c550030abc Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Wed, 14 Jun 2023 16:46:00 +0200 Subject: [PATCH 05/74] Added debug print for release script --- scripts/release.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/release.py b/scripts/release.py index 8bfaf432d0..748eb12d3f 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -25,6 +25,7 @@ class BuildMetadata: def getNextRelease(): # Get current version releases = requests.get("https://api.github.com/repos/stasel/WebRTC/releases").json() + print(releases) latestReleaseVersion = int(releases[0]["tag_name"].split(".")[0]) latestReleaseDate = datetime.fromisoformat(releases[0]["published_at"].replace("Z", "")) print(f"Latest release: version {latestReleaseVersion}, date: {latestReleaseDate}") From 4d2249d0c74ea1ce86ce67366771c26691451e06 Mon Sep 17 00:00:00 2001 From: allen-spicer-scoot <129095852+allen-spicer-scoot@users.noreply.github.com> Date: Thu, 22 Jun 2023 14:07:20 -0400 Subject: [PATCH 06/74] Update README to fix google Docs reference The URL provided is dead. Updating this url to point to the README for the project which walks through a manual build of the framework --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a6217431d4..e8b53311b0 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ If you wish to see how to use WebRTC I highly recommend checking out my WebRTC d ## 🛠 Compile your own WebRTC Frameworks If you wish to compile your own WebRTC binary framework, please refer to the following official guide: -https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/ios/index.md +https://webrtc.googlesource.com/src/+/refs/heads/main/docs/native-code/ios/README.md You can also take a look at the [build script](scripts/build.sh) I created for more details. From 9b7933f2c4ee84979ab24e0ce6ac820abd1cce93 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 19 Jul 2023 15:30:50 +0000 Subject: [PATCH 07/74] Updated files for release M115 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index dbb56f68e7..cd9ba7d3bc 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/114.0.0/WebRTC-M114.xcframework.zip", - checksum: "023b2c9fb53ff014607ef2afe87e3a83c2632555562783ced682715e85da0cd9" + url: "https://github.com/stasel/WebRTC/releases/download/115.0.0/WebRTC-M115.xcframework.zip", + checksum: "91513f2f926c6b660a58690042cefe4ebd73710e2bec475906923bb9599b0df3" ), ] ) diff --git a/README.md b/README.md index e8b53311b0..88e32a1e10 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("114.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("115.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index ee838fdacf..ee9e275ee9 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "114.0.0" + spec.version = "115.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/114.0.0/WebRTC-M114.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/115.0.0/WebRTC-M115.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index b216da6196..4a4ead6fbc 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -12,6 +12,7 @@ "112.0.0": "https://github.com/stasel/WebRTC/releases/download/112.0.0/WebRTC-M112.xcframework.zip", "113.0.0": "https://github.com/stasel/WebRTC/releases/download/113.0.0/WebRTC-M113.xcframework.zip", "114.0.0": "https://github.com/stasel/WebRTC/releases/download/114.0.0/WebRTC-M114.xcframework.zip", + "115.0.0": "https://github.com/stasel/WebRTC/releases/download/115.0.0/WebRTC-M115.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 5544c37aa1b1d5c600a28357803b58cee6dc78aa Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Thu, 20 Jul 2023 09:00:25 +0200 Subject: [PATCH 08/74] Added auth token to get release api call to prevent rate limits on public github actions machines --- scripts/release.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/release.py b/scripts/release.py index 748eb12d3f..114d9f3746 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -24,7 +24,7 @@ class BuildMetadata: def getNextRelease(): # Get current version - releases = requests.get("https://api.github.com/repos/stasel/WebRTC/releases").json() + releases = requests.get("https://api.github.com/repos/stasel/WebRTC/releases", headers={'Authorization': f"token {GITHUB_TOKEN}"}).json() print(releases) latestReleaseVersion = int(releases[0]["tag_name"].split(".")[0]) latestReleaseDate = datetime.fromisoformat(releases[0]["published_at"].replace("Z", "")) From c487cd3e567ca0b58c59496475f1ca6f0572aec6 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 16 Aug 2023 15:27:34 +0000 Subject: [PATCH 09/74] Updated files for release M116 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index cd9ba7d3bc..ca5d01081d 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/115.0.0/WebRTC-M115.xcframework.zip", - checksum: "91513f2f926c6b660a58690042cefe4ebd73710e2bec475906923bb9599b0df3" + url: "https://github.com/stasel/WebRTC/releases/download/116.0.0/WebRTC-M116.xcframework.zip", + checksum: "64ad62a44714a115a65c071925f94000e5df06f03eed7a407ba10947ab0e7b34" ), ] ) diff --git a/README.md b/README.md index 88e32a1e10..5dadba75aa 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("115.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("116.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index ee9e275ee9..a36be79984 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "115.0.0" + spec.version = "116.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/115.0.0/WebRTC-M115.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/116.0.0/WebRTC-M116.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 4a4ead6fbc..a1485a43e2 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -13,6 +13,7 @@ "113.0.0": "https://github.com/stasel/WebRTC/releases/download/113.0.0/WebRTC-M113.xcframework.zip", "114.0.0": "https://github.com/stasel/WebRTC/releases/download/114.0.0/WebRTC-M114.xcframework.zip", "115.0.0": "https://github.com/stasel/WebRTC/releases/download/115.0.0/WebRTC-M115.xcframework.zip", + "116.0.0": "https://github.com/stasel/WebRTC/releases/download/116.0.0/WebRTC-M116.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 046c9056a72e769eb01e7fec96a5adbfefbfd663 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 13 Sep 2023 15:34:32 +0000 Subject: [PATCH 10/74] Updated files for release M117 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index ca5d01081d..9f1b237f89 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/116.0.0/WebRTC-M116.xcframework.zip", - checksum: "64ad62a44714a115a65c071925f94000e5df06f03eed7a407ba10947ab0e7b34" + url: "https://github.com/stasel/WebRTC/releases/download/117.0.0/WebRTC-M117.xcframework.zip", + checksum: "0982983d3918737b9c5c6675ed8fc4ff5afb7d606942eb6e108fdb2b894c9354" ), ] ) diff --git a/README.md b/README.md index 5dadba75aa..37d7dc9685 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("116.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("117.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index a36be79984..d68d5f8730 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "116.0.0" + spec.version = "117.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/116.0.0/WebRTC-M116.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/117.0.0/WebRTC-M117.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index a1485a43e2..3b681615c9 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -14,6 +14,7 @@ "114.0.0": "https://github.com/stasel/WebRTC/releases/download/114.0.0/WebRTC-M114.xcframework.zip", "115.0.0": "https://github.com/stasel/WebRTC/releases/download/115.0.0/WebRTC-M115.xcframework.zip", "116.0.0": "https://github.com/stasel/WebRTC/releases/download/116.0.0/WebRTC-M116.xcframework.zip", + "117.0.0": "https://github.com/stasel/WebRTC/releases/download/117.0.0/WebRTC-M117.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From a5f4d8fa44ca3ed99ba1df836bbaa14cb3e0a590 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 11 Oct 2023 14:37:51 +0000 Subject: [PATCH 11/74] Updated files for release M118 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 9f1b237f89..764db4c1c9 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/117.0.0/WebRTC-M117.xcframework.zip", - checksum: "0982983d3918737b9c5c6675ed8fc4ff5afb7d606942eb6e108fdb2b894c9354" + url: "https://github.com/stasel/WebRTC/releases/download/118.0.0/WebRTC-M118.xcframework.zip", + checksum: "3b1e5da6f78c2a7b97c9d2d1e3a725e8c09caa49d5880023a537d6c98e9c8eee" ), ] ) diff --git a/README.md b/README.md index 37d7dc9685..a2a9b8874d 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("117.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("118.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index d68d5f8730..861b9ab720 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "117.0.0" + spec.version = "118.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/117.0.0/WebRTC-M117.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/118.0.0/WebRTC-M118.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 3b681615c9..ca06262a47 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -15,6 +15,7 @@ "115.0.0": "https://github.com/stasel/WebRTC/releases/download/115.0.0/WebRTC-M115.xcframework.zip", "116.0.0": "https://github.com/stasel/WebRTC/releases/download/116.0.0/WebRTC-M116.xcframework.zip", "117.0.0": "https://github.com/stasel/WebRTC/releases/download/117.0.0/WebRTC-M117.xcframework.zip", + "118.0.0": "https://github.com/stasel/WebRTC/releases/download/118.0.0/WebRTC-M118.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 7a9f5e1abd2c14833e7379a580961817b746e204 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 1 Nov 2023 14:51:32 +0000 Subject: [PATCH 12/74] Updated files for release M119 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 764db4c1c9..5920bf9bfe 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/118.0.0/WebRTC-M118.xcframework.zip", - checksum: "3b1e5da6f78c2a7b97c9d2d1e3a725e8c09caa49d5880023a537d6c98e9c8eee" + url: "https://github.com/stasel/WebRTC/releases/download/119.0.0/WebRTC-M119.xcframework.zip", + checksum: "60737020738e76f2200f3f2c12a32f260d116f858a2e1ff33c48973ddd3e1c97" ), ] ) diff --git a/README.md b/README.md index a2a9b8874d..b678086ebf 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("118.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("119.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 861b9ab720..957c0897da 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "118.0.0" + spec.version = "119.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/118.0.0/WebRTC-M118.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/119.0.0/WebRTC-M119.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index ca06262a47..b14e96bcad 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -16,6 +16,7 @@ "116.0.0": "https://github.com/stasel/WebRTC/releases/download/116.0.0/WebRTC-M116.xcframework.zip", "117.0.0": "https://github.com/stasel/WebRTC/releases/download/117.0.0/WebRTC-M117.xcframework.zip", "118.0.0": "https://github.com/stasel/WebRTC/releases/download/118.0.0/WebRTC-M118.xcframework.zip", + "119.0.0": "https://github.com/stasel/WebRTC/releases/download/119.0.0/WebRTC-M119.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 3edaa8f0ddae889ad8ea236023de88672f6a16ec Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 6 Dec 2023 15:43:58 +0000 Subject: [PATCH 13/74] Updated files for release M120 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 5920bf9bfe..4dc88c5a49 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/119.0.0/WebRTC-M119.xcframework.zip", - checksum: "60737020738e76f2200f3f2c12a32f260d116f858a2e1ff33c48973ddd3e1c97" + url: "https://github.com/stasel/WebRTC/releases/download/120.0.0/WebRTC-M120.xcframework.zip", + checksum: "47f6642cb9cd61da99086f091c0519c12a5641c99626e07344f2510b76ee93c5" ), ] ) diff --git a/README.md b/README.md index b678086ebf..a8d61f6b40 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("119.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("120.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 957c0897da..60e000e420 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "119.0.0" + spec.version = "120.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/119.0.0/WebRTC-M119.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/120.0.0/WebRTC-M120.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index b14e96bcad..e2c6a7d6b2 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -17,6 +17,7 @@ "117.0.0": "https://github.com/stasel/WebRTC/releases/download/117.0.0/WebRTC-M117.xcframework.zip", "118.0.0": "https://github.com/stasel/WebRTC/releases/download/118.0.0/WebRTC-M118.xcframework.zip", "119.0.0": "https://github.com/stasel/WebRTC/releases/download/119.0.0/WebRTC-M119.xcframework.zip", + "120.0.0": "https://github.com/stasel/WebRTC/releases/download/120.0.0/WebRTC-M120.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 4ae3a079ee5442c8861bbfe11fd88ec2a4f42952 Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Sun, 7 Jan 2024 15:32:19 +0100 Subject: [PATCH 14/74] Update webrtc-release.yml Remove redundant step --- .github/workflows/webrtc-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/webrtc-release.yml b/.github/workflows/webrtc-release.yml index ea8067322c..8ec0a412ac 100644 --- a/.github/workflows/webrtc-release.yml +++ b/.github/workflows/webrtc-release.yml @@ -20,4 +20,4 @@ jobs: sh clean.sh pip install requests python-telegram-bot python -u scripts/release.py - - run: echo "🍏 This job's status is ${{ job.status }}." + From 463d4d2ec50920518f6569872d3b1ea4d187404a Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 24 Jan 2024 14:25:42 +0000 Subject: [PATCH 15/74] Updated files for release M121 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 4dc88c5a49..6ac17c2c38 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/120.0.0/WebRTC-M120.xcframework.zip", - checksum: "47f6642cb9cd61da99086f091c0519c12a5641c99626e07344f2510b76ee93c5" + url: "https://github.com/stasel/WebRTC/releases/download/121.0.0/WebRTC-M121.xcframework.zip", + checksum: "eb5d48c81ebed1575daed3b7f62487e98dca1dff4379b8614dca2a1a4d9e799e" ), ] ) diff --git a/README.md b/README.md index a8d61f6b40..ae7a1aca09 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("120.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("121.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 60e000e420..4efb352a83 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "120.0.0" + spec.version = "121.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/120.0.0/WebRTC-M120.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/121.0.0/WebRTC-M121.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index e2c6a7d6b2..bdde98c160 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -18,6 +18,7 @@ "118.0.0": "https://github.com/stasel/WebRTC/releases/download/118.0.0/WebRTC-M118.xcframework.zip", "119.0.0": "https://github.com/stasel/WebRTC/releases/download/119.0.0/WebRTC-M119.xcframework.zip", "120.0.0": "https://github.com/stasel/WebRTC/releases/download/120.0.0/WebRTC-M120.xcframework.zip", + "121.0.0": "https://github.com/stasel/WebRTC/releases/download/121.0.0/WebRTC-M121.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 7cd3f796299f61c570ef2682d4f728e74da6a27c Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Mon, 5 Feb 2024 23:56:26 +0100 Subject: [PATCH 16/74] Added option to trigger manual build, included new flag --- .github/workflows/webrtc-build.yml | 43 ++++++++++++++++++++++++++++++ scripts/build.sh | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/webrtc-build.yml diff --git a/.github/workflows/webrtc-build.yml b/.github/workflows/webrtc-build.yml new file mode 100644 index 0000000000..cffc6a6798 --- /dev/null +++ b/.github/workflows/webrtc-build.yml @@ -0,0 +1,43 @@ +name: WebRTC Manual Build +run-name: WebRTC Manual Build +on: + workflow_dispatch: + inputs: + branch: + description: 'webRTC branch head. Ex: branch-heads/6167' + required: true + default: "branch-heads/0000" + type: string + ios: + description: 'Build iOS libraries' + required: true + default: true + type: boolean + macos: + description: 'Build macOS libraries' + required: true + default: true + type: boolean + maccatalyst: + description: 'Build macOS Catalyst libraries' + required: true + default: true + type: boolean +jobs: + Build-Script: + runs-on: macos-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Building WebRTC framework + run: | + sh clean.sh + sh scripts/build.sh + env: + BRANCH: ${{ inputs.branch }} + IOS: ${{ inputs.ios }} + MACOS: ${{ inputs.macos }} + MAC_CATALYST: ${{ inputs.maccatalyst }} + BUILD_VP9: true diff --git a/scripts/build.sh b/scripts/build.sh index 5af213de53..c5d4e3bcba 100644 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -16,7 +16,7 @@ MAC_CATALYST="${MAC_CATALYST:-false}" OUTPUT_DIR="./out" XCFRAMEWORK_DIR="out/WebRTC.xcframework" -COMMON_GN_ARGS="is_debug=${DEBUG} rtc_libvpx_build_vp9=${BUILD_VP9} is_component_build=false rtc_include_tests=false rtc_enable_objc_symbol_export=true enable_stripping=true enable_dsyms=false use_lld=true" +COMMON_GN_ARGS="is_debug=${DEBUG} rtc_libvpx_build_vp9=${BUILD_VP9} is_component_build=false rtc_include_tests=false rtc_enable_objc_symbol_export=true enable_stripping=true enable_dsyms=false use_lld=true rtc_ios_macos_use_opengl_rendering=true" PLISTBUDDY_EXEC="/usr/libexec/PlistBuddy" build_iOS() { From 04862e41214b642849efccfe058dbaabc67734e5 Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Tue, 6 Feb 2024 00:04:52 +0100 Subject: [PATCH 17/74] Added artifact upload to manual build workflow --- .github/workflows/webrtc-build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/webrtc-build.yml b/.github/workflows/webrtc-build.yml index cffc6a6798..2bfd96f058 100644 --- a/.github/workflows/webrtc-build.yml +++ b/.github/workflows/webrtc-build.yml @@ -41,3 +41,8 @@ jobs: MACOS: ${{ inputs.macos }} MAC_CATALYST: ${{ inputs.maccatalyst }} BUILD_VP9: true + - name: Upload framework + uses: actions/upload-artifact@v4 + with: + name: WebRTC.xcframework + path: src/out/WebRTC.xcframework From 01810237651bb3ef4a6026752b17a5e0f234f18e Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Tue, 6 Feb 2024 15:45:36 +0100 Subject: [PATCH 18/74] Save the gn args used to txt file, fix opengl flag --- scripts/build.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index c5d4e3bcba..8a2121998c 100644 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -16,7 +16,7 @@ MAC_CATALYST="${MAC_CATALYST:-false}" OUTPUT_DIR="./out" XCFRAMEWORK_DIR="out/WebRTC.xcframework" -COMMON_GN_ARGS="is_debug=${DEBUG} rtc_libvpx_build_vp9=${BUILD_VP9} is_component_build=false rtc_include_tests=false rtc_enable_objc_symbol_export=true enable_stripping=true enable_dsyms=false use_lld=true rtc_ios_macos_use_opengl_rendering=true" +COMMON_GN_ARGS="is_debug=${DEBUG} rtc_libvpx_build_vp9=${BUILD_VP9} is_component_build=false rtc_include_tests=false rtc_enable_objc_symbol_export=true enable_stripping=true enable_dsyms=false use_lld=true rtc_ios_use_opengl_rendering=true" PLISTBUDDY_EXEC="/usr/libexec/PlistBuddy" build_iOS() { @@ -25,6 +25,7 @@ build_iOS() { local gen_dir="${OUTPUT_DIR}/ios-${arch}-${environment}" local gen_args="${COMMON_GN_ARGS} target_cpu=\"${arch}\" target_os=\"ios\" target_environment=\"${environment}\" ios_deployment_target=\"12.0\" ios_enable_code_signing=false" gn gen "${gen_dir}" --args="${gen_args}" + gn args --list ${gen_dir} > ${gen_dir}/gn-args.txt ninja -C "${gen_dir}" framework_objc || exit 1 } @@ -33,6 +34,7 @@ build_macOS() { local gen_dir="${OUTPUT_DIR}/macos-${arch}" local gen_args="${COMMON_GN_ARGS} target_cpu=\"${arch}\" target_os=\"mac\"" gn gen "${gen_dir}" --args="${gen_args}" + gn args --list ${gen_dir} > ${gen_dir}/gn-args.txt ninja -C "${gen_dir}" mac_framework_objc || exit 1 } @@ -43,6 +45,7 @@ build_catalyst() { local gen_dir="${OUTPUT_DIR}/catalyst-${arch}" local gen_args="${COMMON_GN_ARGS} target_cpu=\"${arch}\" target_environment=\"catalyst\" target_os=\"ios\" ios_deployment_target=\"14.0\" ios_enable_code_signing=false" gn gen "${gen_dir}" --args="${gen_args}" + gn args --list ${gen_dir} > ${gen_dir}/gn-args.txt ninja -C "${gen_dir}" framework_objc || exit 1 } @@ -88,10 +91,6 @@ cd .. gclient sync --with_branch_heads --with_tags cd src -# Step 2.5 - Apply patches (Temp) -# sed -i '' 's/"-mllvm",$/# "-mllvm",/g' ./build/config/compiler/BUILD.gn -# sed -i '' 's/"-instcombine-lower-dbg-declare=0",$/# "-instcombine-lower-dbg-declare=0",/g' ./build/config/compiler/BUILD.gn - # Step 3 - Compile and build all frameworks rm -rf $OUTPUT_DIR From 821fd35ea2297dfafa89c400de6199ce13f736df Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 21 Feb 2024 15:56:43 +0000 Subject: [PATCH 19/74] Updated files for release M122 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 6ac17c2c38..ef2e6a82ed 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/121.0.0/WebRTC-M121.xcframework.zip", - checksum: "eb5d48c81ebed1575daed3b7f62487e98dca1dff4379b8614dca2a1a4d9e799e" + url: "https://github.com/stasel/WebRTC/releases/download/122.0.0/WebRTC-M122.xcframework.zip", + checksum: "79c63e26621e239f9eebacbe6f21371d8a4a55471a648c093ea4e2c72a7e824b" ), ] ) diff --git a/README.md b/README.md index ae7a1aca09..d0055bf913 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("121.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("122.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 4efb352a83..ed2cb8c1e0 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "121.0.0" + spec.version = "122.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/121.0.0/WebRTC-M121.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/122.0.0/WebRTC-M122.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index bdde98c160..ad792797e1 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -19,6 +19,7 @@ "119.0.0": "https://github.com/stasel/WebRTC/releases/download/119.0.0/WebRTC-M119.xcframework.zip", "120.0.0": "https://github.com/stasel/WebRTC/releases/download/120.0.0/WebRTC-M120.xcframework.zip", "121.0.0": "https://github.com/stasel/WebRTC/releases/download/121.0.0/WebRTC-M121.xcframework.zip", + "122.0.0": "https://github.com/stasel/WebRTC/releases/download/122.0.0/WebRTC-M122.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From cdf22dbb602fd268ab60fccc647d62892b8bb7ed Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 20 Mar 2024 14:13:03 +0000 Subject: [PATCH 20/74] Updated files for release M123 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index ef2e6a82ed..5cf4f38506 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/122.0.0/WebRTC-M122.xcframework.zip", - checksum: "79c63e26621e239f9eebacbe6f21371d8a4a55471a648c093ea4e2c72a7e824b" + url: "https://github.com/stasel/WebRTC/releases/download/123.0.0/WebRTC-M123.xcframework.zip", + checksum: "a40a1299d41af76451c0316a54dc05f7e7fa2032a02bd240cacbf3545c7359fe" ), ] ) diff --git a/README.md b/README.md index d0055bf913..35cc0f6ab3 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("122.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("123.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index ed2cb8c1e0..35065dd927 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "122.0.0" + spec.version = "123.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/122.0.0/WebRTC-M122.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/123.0.0/WebRTC-M123.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index ad792797e1..082b6539bd 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -20,6 +20,7 @@ "120.0.0": "https://github.com/stasel/WebRTC/releases/download/120.0.0/WebRTC-M120.xcframework.zip", "121.0.0": "https://github.com/stasel/WebRTC/releases/download/121.0.0/WebRTC-M121.xcframework.zip", "122.0.0": "https://github.com/stasel/WebRTC/releases/download/122.0.0/WebRTC-M122.xcframework.zip", + "123.0.0": "https://github.com/stasel/WebRTC/releases/download/123.0.0/WebRTC-M123.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From cbe72674a92976aaab93f556f126d263340ef9a1 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 17 Apr 2024 16:21:27 +0000 Subject: [PATCH 21/74] Updated files for release M124 --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 5cf4f38506..65b64545c7 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/123.0.0/WebRTC-M123.xcframework.zip", - checksum: "a40a1299d41af76451c0316a54dc05f7e7fa2032a02bd240cacbf3545c7359fe" + url: "https://github.com/stasel/WebRTC/releases/download/124.0.0/WebRTC-M124.xcframework.zip", + checksum: "682e40eb2d32a5214228759c07293977e90818aeb957f622f95b76dc1bc7b8f2" ), ] ) diff --git a/README.md b/README.md index 35cc0f6ab3..f3e0e942c6 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("123.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("124.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 35065dd927..0f5647b6b7 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "123.0.0" + spec.version = "124.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/123.0.0/WebRTC-M123.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/124.0.0/WebRTC-M124.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 082b6539bd..b768198c94 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -21,6 +21,7 @@ "121.0.0": "https://github.com/stasel/WebRTC/releases/download/121.0.0/WebRTC-M121.xcframework.zip", "122.0.0": "https://github.com/stasel/WebRTC/releases/download/122.0.0/WebRTC-M122.xcframework.zip", "123.0.0": "https://github.com/stasel/WebRTC/releases/download/123.0.0/WebRTC-M123.xcframework.zip", + "124.0.0": "https://github.com/stasel/WebRTC/releases/download/124.0.0/WebRTC-M124.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From b4f5a90c887bde68512b8f1a6d684b27b5597b76 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 18 May 2024 22:48:16 +0200 Subject: [PATCH 22/74] Release M125 (#98) Updated files for release M125 --- .gitignore | 1 + Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index da97b34fbe..d75b13fa26 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .DS_Store .gclient .gclient_entries +.gcs_entries depot_tools src .cipd diff --git a/Package.swift b/Package.swift index 65b64545c7..1b1b684432 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/124.0.0/WebRTC-M124.xcframework.zip", - checksum: "682e40eb2d32a5214228759c07293977e90818aeb957f622f95b76dc1bc7b8f2" + url: "https://github.com/stasel/WebRTC/releases/download/125.0.0/WebRTC-M125.xcframework.zip", + checksum: "4da2f9c7b7481a82249ea61dfcceae7caac6890e0a0412389684765435113ae8" ), ] ) diff --git a/README.md b/README.md index f3e0e942c6..627fc81691 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("124.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("125.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 0f5647b6b7..e116da7a3d 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "124.0.0" + spec.version = "125.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/124.0.0/WebRTC-M124.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/125.0.0/WebRTC-M125.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index b768198c94..44c9961a8c 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -22,6 +22,7 @@ "122.0.0": "https://github.com/stasel/WebRTC/releases/download/122.0.0/WebRTC-M122.xcframework.zip", "123.0.0": "https://github.com/stasel/WebRTC/releases/download/123.0.0/WebRTC-M123.xcframework.zip", "124.0.0": "https://github.com/stasel/WebRTC/releases/download/124.0.0/WebRTC-M124.xcframework.zip", + "125.0.0": "https://github.com/stasel/WebRTC/releases/download/125.0.0/WebRTC-M125.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 52dc517f23053538ad0e2e14280df8f94a3ec1a7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 21:57:00 +0200 Subject: [PATCH 23/74] Updated files for release M126 (#100) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 1b1b684432..18140f0d97 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/125.0.0/WebRTC-M125.xcframework.zip", - checksum: "4da2f9c7b7481a82249ea61dfcceae7caac6890e0a0412389684765435113ae8" + url: "https://github.com/stasel/WebRTC/releases/download/126.0.0/WebRTC-M126.xcframework.zip", + checksum: "344d805dacc5576317fc50942672126054da03fb395e4fce378b20bb845106d7" ), ] ) diff --git a/README.md b/README.md index 627fc81691..d105bc6093 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("125.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("126.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index e116da7a3d..fd860cbe33 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "125.0.0" + spec.version = "126.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/125.0.0/WebRTC-M125.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/126.0.0/WebRTC-M126.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 44c9961a8c..b6e62f952f 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -23,6 +23,7 @@ "123.0.0": "https://github.com/stasel/WebRTC/releases/download/123.0.0/WebRTC-M123.xcframework.zip", "124.0.0": "https://github.com/stasel/WebRTC/releases/download/124.0.0/WebRTC-M124.xcframework.zip", "125.0.0": "https://github.com/stasel/WebRTC/releases/download/125.0.0/WebRTC-M125.xcframework.zip", + "126.0.0": "https://github.com/stasel/WebRTC/releases/download/126.0.0/WebRTC-M126.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From dc5ad1588780a20f613618428047adb467de948b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 22:04:40 +0200 Subject: [PATCH 24/74] Updated files for release M127 (#101) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 18140f0d97..9bac80d094 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/126.0.0/WebRTC-M126.xcframework.zip", - checksum: "344d805dacc5576317fc50942672126054da03fb395e4fce378b20bb845106d7" + url: "https://github.com/stasel/WebRTC/releases/download/127.0.0/WebRTC-M127.xcframework.zip", + checksum: "8a2fd917c8d7a9aecb78677beb981b7e7ce146c6dbdc5cdab94494e74d476b69" ), ] ) diff --git a/README.md b/README.md index d105bc6093..25f69be17f 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("126.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("127.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index fd860cbe33..dcdae11ed4 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "126.0.0" + spec.version = "127.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/126.0.0/WebRTC-M126.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/127.0.0/WebRTC-M127.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index b6e62f952f..1b0e68ff26 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -24,6 +24,7 @@ "124.0.0": "https://github.com/stasel/WebRTC/releases/download/124.0.0/WebRTC-M124.xcframework.zip", "125.0.0": "https://github.com/stasel/WebRTC/releases/download/125.0.0/WebRTC-M125.xcframework.zip", "126.0.0": "https://github.com/stasel/WebRTC/releases/download/126.0.0/WebRTC-M126.xcframework.zip", + "127.0.0": "https://github.com/stasel/WebRTC/releases/download/127.0.0/WebRTC-M127.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 094c4fc20594251946319805d8328c8e745dd084 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 28 Aug 2024 23:02:16 +0200 Subject: [PATCH 25/74] Updated files for release M128 (#102) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 9bac80d094..daa4143ab5 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/127.0.0/WebRTC-M127.xcframework.zip", - checksum: "8a2fd917c8d7a9aecb78677beb981b7e7ce146c6dbdc5cdab94494e74d476b69" + url: "https://github.com/stasel/WebRTC/releases/download/128.0.0/WebRTC-M128.xcframework.zip", + checksum: "468cf792823b2d9e984bdab18311822cc42f34a905145f475ac6132b28061ff0" ), ] ) diff --git a/README.md b/README.md index 25f69be17f..1e9a4bd7e8 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("127.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("128.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index dcdae11ed4..8a4f04e8c6 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "127.0.0" + spec.version = "128.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/127.0.0/WebRTC-M127.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/128.0.0/WebRTC-M128.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 1b0e68ff26..583f0eb9d5 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -25,6 +25,7 @@ "125.0.0": "https://github.com/stasel/WebRTC/releases/download/125.0.0/WebRTC-M125.xcframework.zip", "126.0.0": "https://github.com/stasel/WebRTC/releases/download/126.0.0/WebRTC-M126.xcframework.zip", "127.0.0": "https://github.com/stasel/WebRTC/releases/download/127.0.0/WebRTC-M127.xcframework.zip", + "128.0.0": "https://github.com/stasel/WebRTC/releases/download/128.0.0/WebRTC-M128.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From c7670a5fa958cbedc5924981a3ccc4a2df2067f9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 00:37:09 +0200 Subject: [PATCH 26/74] Updated files for release M129 (#104) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index daa4143ab5..30b8cc6a1b 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/128.0.0/WebRTC-M128.xcframework.zip", - checksum: "468cf792823b2d9e984bdab18311822cc42f34a905145f475ac6132b28061ff0" + url: "https://github.com/stasel/WebRTC/releases/download/129.0.0/WebRTC-M129.xcframework.zip", + checksum: "2e93f0fca76095909399540766cc1382d687646231e530ecb40b8e1ba275f2b9" ), ] ) diff --git a/README.md b/README.md index 1e9a4bd7e8..21a61dcdc6 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("128.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("129.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 8a4f04e8c6..67bcc48166 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "128.0.0" + spec.version = "129.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/128.0.0/WebRTC-M128.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/129.0.0/WebRTC-M129.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 583f0eb9d5..37ff9642d3 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -26,6 +26,7 @@ "126.0.0": "https://github.com/stasel/WebRTC/releases/download/126.0.0/WebRTC-M126.xcframework.zip", "127.0.0": "https://github.com/stasel/WebRTC/releases/download/127.0.0/WebRTC-M127.xcframework.zip", "128.0.0": "https://github.com/stasel/WebRTC/releases/download/128.0.0/WebRTC-M128.xcframework.zip", + "129.0.0": "https://github.com/stasel/WebRTC/releases/download/129.0.0/WebRTC-M129.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 1048f8396529c10e259f8240d0c2cd607a13defd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 22:46:12 +0200 Subject: [PATCH 27/74] Updated files for release M130 (#106) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 30b8cc6a1b..fc366d8d0a 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/129.0.0/WebRTC-M129.xcframework.zip", - checksum: "2e93f0fca76095909399540766cc1382d687646231e530ecb40b8e1ba275f2b9" + url: "https://github.com/stasel/WebRTC/releases/download/130.0.0/WebRTC-M130.xcframework.zip", + checksum: "3b09833ae2b3aaa3755dc21f194dcba7564cf26de6af04876e2737c4927a8703" ), ] ) diff --git a/README.md b/README.md index 21a61dcdc6..d1ee76f8af 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("129.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("130.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 67bcc48166..404cafcc35 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "129.0.0" + spec.version = "130.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/129.0.0/WebRTC-M129.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/130.0.0/WebRTC-M130.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 37ff9642d3..f285c29d03 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -27,6 +27,7 @@ "127.0.0": "https://github.com/stasel/WebRTC/releases/download/127.0.0/WebRTC-M127.xcframework.zip", "128.0.0": "https://github.com/stasel/WebRTC/releases/download/128.0.0/WebRTC-M128.xcframework.zip", "129.0.0": "https://github.com/stasel/WebRTC/releases/download/129.0.0/WebRTC-M129.xcframework.zip", + "130.0.0": "https://github.com/stasel/WebRTC/releases/download/130.0.0/WebRTC-M130.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 8e11d8ce241142eb56af97e3e49bb83bde78f1e9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 5 Mar 2025 00:20:15 +0100 Subject: [PATCH 28/74] Updated files for release M131 (#114) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index fc366d8d0a..d460d44e3b 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/130.0.0/WebRTC-M130.xcframework.zip", - checksum: "3b09833ae2b3aaa3755dc21f194dcba7564cf26de6af04876e2737c4927a8703" + url: "https://github.com/stasel/WebRTC/releases/download/131.0.0/WebRTC-M131.xcframework.zip", + checksum: "475c689cf57893d953acca721ca650cf1aaad886051f75defa6c01157abc3b11" ), ] ) diff --git a/README.md b/README.md index d1ee76f8af..957fd75c2b 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("130.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("131.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 404cafcc35..d771b92487 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "130.0.0" + spec.version = "131.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/130.0.0/WebRTC-M130.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/131.0.0/WebRTC-M131.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index f285c29d03..a6ebacd617 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -28,6 +28,7 @@ "128.0.0": "https://github.com/stasel/WebRTC/releases/download/128.0.0/WebRTC-M128.xcframework.zip", "129.0.0": "https://github.com/stasel/WebRTC/releases/download/129.0.0/WebRTC-M129.xcframework.zip", "130.0.0": "https://github.com/stasel/WebRTC/releases/download/130.0.0/WebRTC-M130.xcframework.zip", + "131.0.0": "https://github.com/stasel/WebRTC/releases/download/131.0.0/WebRTC-M131.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 41ee950891679b628713d68134a21a76b390ca2d Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Wed, 5 Mar 2025 10:26:01 +0100 Subject: [PATCH 29/74] Added third_part folder to .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d75b13fa26..edf180192d 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ depot_tools src .cipd -.gclient_previous_sync_commits \ No newline at end of file +.gclient_previous_sync_commits +third_party \ No newline at end of file From 9fc7e369e94e0dbb167b7b3f9b917ce4f9f3b7cd Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Wed, 5 Mar 2025 10:32:33 +0100 Subject: [PATCH 30/74] Added Release notes link to the release script --- scripts/release.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/release.py b/scripts/release.py index 114d9f3746..bfe0805f94 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -60,7 +60,7 @@ def getBuildMetadata(outputDir): return BuildMetadata(filename = jsonData['file'], checksum = jsonData['checksum'], commit = jsonData['commit'], branch = jsonData['branch']) def createReleaseDraft(release, buildMetadata): - body = "Release notes: N/A\n" + body = f"Release notes: https://webrtc.googlesource.com/src.git/+log/refs/{buildMetadata.branch}/\n" body += f"WebRTC Branch: [{buildMetadata.branch}](https://chromium.googlesource.com/external/webrtc/+log/{buildMetadata.branch})\n" body += f"WebRTC Commit: `{buildMetadata.commit}`\n" body += f"SHA 256 checksum: `{buildMetadata.checksum}`" From 0f4e1ba0c6c61111c2065a1a8da3b7f240fc1d4b Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Wed, 5 Mar 2025 15:53:40 +0100 Subject: [PATCH 31/74] Fixed an issue where unnecessary files get commit to the git branch --- .gitignore | 2 +- scripts/release.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index edf180192d..ca276bfd0a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ depot_tools src .cipd .gclient_previous_sync_commits -third_party \ No newline at end of file +third_party diff --git a/scripts/release.py b/scripts/release.py index bfe0805f94..c2b7ce964e 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -171,7 +171,7 @@ def createPullRequest(release, head): # Commit and push print("➡️ Commiting and pushing code to remote...") - os.system(f'git add .') + os.system(f'git add Package.swift WebRTC-lib.podspec README.md WebRTC.json') os.system(f'git commit -m "Updated files for release M{nextRelease.version}"') os.system(f'git push origin {releaseBranch}') From 6000edd3e2d95f8ce95bc9bd677e3acef31a7710 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 5 Mar 2025 17:11:54 +0100 Subject: [PATCH 32/74] Updated files for release M132 (#115) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index d460d44e3b..e614b1950e 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/131.0.0/WebRTC-M131.xcframework.zip", - checksum: "475c689cf57893d953acca721ca650cf1aaad886051f75defa6c01157abc3b11" + url: "https://github.com/stasel/WebRTC/releases/download/132.0.0/WebRTC-M132.xcframework.zip", + checksum: "aebe7395dcf40b3b40ac3ab6e3e3d7163611aea7312f26d4161eff3720dd123a" ), ] ) diff --git a/README.md b/README.md index 957fd75c2b..0acf608cec 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("131.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("132.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index d771b92487..9e35396ccc 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "131.0.0" + spec.version = "132.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/131.0.0/WebRTC-M131.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/132.0.0/WebRTC-M132.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index a6ebacd617..d2799ba885 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -29,6 +29,7 @@ "129.0.0": "https://github.com/stasel/WebRTC/releases/download/129.0.0/WebRTC-M129.xcframework.zip", "130.0.0": "https://github.com/stasel/WebRTC/releases/download/130.0.0/WebRTC-M130.xcframework.zip", "131.0.0": "https://github.com/stasel/WebRTC/releases/download/131.0.0/WebRTC-M131.xcframework.zip", + "132.0.0": "https://github.com/stasel/WebRTC/releases/download/132.0.0/WebRTC-M132.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From fd55a7d7bf152e54195497ef9ef5ad0ba1212579 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 5 Mar 2025 22:32:23 +0100 Subject: [PATCH 33/74] Updated files for release M133 (#117) Co-authored-by: Anka Co-authored-by: Stasel <2033301+stasel@users.noreply.github.com> --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index e614b1950e..12f0a07a40 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/132.0.0/WebRTC-M132.xcframework.zip", - checksum: "aebe7395dcf40b3b40ac3ab6e3e3d7163611aea7312f26d4161eff3720dd123a" + url: "https://github.com/stasel/WebRTC/releases/download/133.0.0/WebRTC-M133.xcframework.zip", + checksum: "47036116bb0478613adc003c6b6a2df6ed3339c63037543ffa89a5dd90d6a313" ), ] ) diff --git a/README.md b/README.md index 0acf608cec..3f883f3cc5 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("132.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("133.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 9e35396ccc..05f736c55e 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "132.0.0" + spec.version = "133.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/132.0.0/WebRTC-M132.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/133.0.0/WebRTC-M133.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index d2799ba885..ce33adf333 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -28,6 +28,7 @@ "128.0.0": "https://github.com/stasel/WebRTC/releases/download/128.0.0/WebRTC-M128.xcframework.zip", "129.0.0": "https://github.com/stasel/WebRTC/releases/download/129.0.0/WebRTC-M129.xcframework.zip", "130.0.0": "https://github.com/stasel/WebRTC/releases/download/130.0.0/WebRTC-M130.xcframework.zip", + "133.0.0": "https://github.com/stasel/WebRTC/releases/download/133.0.0/WebRTC-M133.xcframework.zip", "131.0.0": "https://github.com/stasel/WebRTC/releases/download/131.0.0/WebRTC-M131.xcframework.zip", "132.0.0": "https://github.com/stasel/WebRTC/releases/download/132.0.0/WebRTC-M132.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", From 81d8089ac6b4da784b12f0e2069b2161ad953088 Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Wed, 5 Mar 2025 22:35:28 +0100 Subject: [PATCH 34/74] Enable manual trigger for the release action --- .github/workflows/webrtc-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/webrtc-release.yml b/.github/workflows/webrtc-release.yml index 8ec0a412ac..af463b8aa5 100644 --- a/.github/workflows/webrtc-release.yml +++ b/.github/workflows/webrtc-release.yml @@ -1,6 +1,7 @@ name: WebRTC Release run-name: WebRTC Release on: + workflow_dispatch: schedule: - cron: '0 12 * * 3' jobs: From 8935b856d1cfa66af25908395918f13cd316aa25 Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Wed, 5 Mar 2025 23:18:44 +0100 Subject: [PATCH 35/74] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3f883f3cc5..8f6e49669e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Cocoapods](https://img.shields.io/cocoapods/v/WebRTC-lib)](https://cocoapods.org/pods/WebRTC-lib) -This repository contains unofficial distribution of WebRTC framework binaries for iOS and macOS. +This repository contains a community-driven distribution of WebRTC framework binaries for iOS and macOS. Since version M80, Google has [deprecated](https://groups.google.com/g/discuss-webrtc/c/Ozvbd0p7Q1Y/m/M4WN2cRKCwAJ?pli=1) their mobile binary libraries distributions (Was officially using the [GoogleWebRTC pod](https://cocoapods.org/pods/GoogleWebRTC)). To get the most up to date WebRTC library, you can compile it on your own, or you can use precompiled binaries from here or other sources. @@ -13,7 +13,9 @@ Since version M80, Google has [deprecated](https://groups.google.com/g/discuss-w The binary releases correspond with official Chromium releases and branches as specified in the [Chromium dashboard](https://chromiumdash.appspot.com/branches). ## 💡 Things to know -* All binaries in this repository are compiled from the official WebRTC [source code](https://webrtc.googlesource.com/src/) without any modifications to the source code or to the output binaries. +* All binaries in this repository are compiled from the official WebRTC [source code](https://webrtc.googlesource.com/src/) . +* No modifications are made to the source code or the output binaries. +* The build process is open source using GitHub actions. * Dynamic framework (xcframework format) which contains multiple binaries for macOS and iOS. * Since [Xcode 14](https://developer.apple.com/documentation/Xcode-Release-Notes/xcode-14-release-notes), bitcode is deprecated. Version M103 and above does not include bitcode. From 5b2eb61cace7d62726b29a38b768b07d6bc55c45 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 6 Mar 2025 00:04:59 +0100 Subject: [PATCH 36/74] Updated files for release M134 (#118) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 3 ++- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Package.swift b/Package.swift index 12f0a07a40..dbb59a2aea 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/133.0.0/WebRTC-M133.xcframework.zip", - checksum: "47036116bb0478613adc003c6b6a2df6ed3339c63037543ffa89a5dd90d6a313" + url: "https://github.com/stasel/WebRTC/releases/download/134.0.0/WebRTC-M134.xcframework.zip", + checksum: "c714c65f5405b38762f94208b0ee2e9fdc3bb4ba5c503fedf52944a73fe179d8" ), ] ) diff --git a/README.md b/README.md index 8f6e49669e..1f1e97d0c5 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("133.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("134.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 05f736c55e..0d86be899d 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "133.0.0" + spec.version = "134.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/133.0.0/WebRTC-M133.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/134.0.0/WebRTC-M134.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index ce33adf333..679d00113a 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -28,9 +28,10 @@ "128.0.0": "https://github.com/stasel/WebRTC/releases/download/128.0.0/WebRTC-M128.xcframework.zip", "129.0.0": "https://github.com/stasel/WebRTC/releases/download/129.0.0/WebRTC-M129.xcframework.zip", "130.0.0": "https://github.com/stasel/WebRTC/releases/download/130.0.0/WebRTC-M130.xcframework.zip", - "133.0.0": "https://github.com/stasel/WebRTC/releases/download/133.0.0/WebRTC-M133.xcframework.zip", "131.0.0": "https://github.com/stasel/WebRTC/releases/download/131.0.0/WebRTC-M131.xcframework.zip", "132.0.0": "https://github.com/stasel/WebRTC/releases/download/132.0.0/WebRTC-M132.xcframework.zip", + "133.0.0": "https://github.com/stasel/WebRTC/releases/download/133.0.0/WebRTC-M133.xcframework.zip", + "134.0.0": "https://github.com/stasel/WebRTC/releases/download/134.0.0/WebRTC-M134.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From e15b6945119ac4702b2ff6f770823341e1366ec8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 9 Apr 2025 07:54:03 +0200 Subject: [PATCH 37/74] Updated files for release M135 (#120) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index dbb59a2aea..5b921cd973 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/134.0.0/WebRTC-M134.xcframework.zip", - checksum: "c714c65f5405b38762f94208b0ee2e9fdc3bb4ba5c503fedf52944a73fe179d8" + url: "https://github.com/stasel/WebRTC/releases/download/135.0.0/WebRTC-M135.xcframework.zip", + checksum: "f33336c74d7a5d42a257b0aeca2315b50473c611b74f22dac7e41c38cbe84351" ), ] ) diff --git a/README.md b/README.md index 1f1e97d0c5..cd39dcdc37 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("134.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("135.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 0d86be899d..930cc9e5c6 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "134.0.0" + spec.version = "135.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/134.0.0/WebRTC-M134.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/135.0.0/WebRTC-M135.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 679d00113a..c3af2f46c4 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -32,6 +32,7 @@ "132.0.0": "https://github.com/stasel/WebRTC/releases/download/132.0.0/WebRTC-M132.xcframework.zip", "133.0.0": "https://github.com/stasel/WebRTC/releases/download/133.0.0/WebRTC-M133.xcframework.zip", "134.0.0": "https://github.com/stasel/WebRTC/releases/download/134.0.0/WebRTC-M134.xcframework.zip", + "135.0.0": "https://github.com/stasel/WebRTC/releases/download/135.0.0/WebRTC-M135.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 57c8881d4856f29a1fb809e9c084b7d72fce03fe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 15:17:40 +0200 Subject: [PATCH 38/74] Updated files for release M136 (#123) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 5b921cd973..c003136a94 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/135.0.0/WebRTC-M135.xcframework.zip", - checksum: "f33336c74d7a5d42a257b0aeca2315b50473c611b74f22dac7e41c38cbe84351" + url: "https://github.com/stasel/WebRTC/releases/download/136.0.0/WebRTC-M136.xcframework.zip", + checksum: "1d6f76b91ca6d40a143cec093781e3cc954a6754edced4662851aaead96e19ef" ), ] ) diff --git a/README.md b/README.md index cd39dcdc37..644a5d8633 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("135.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("136.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 930cc9e5c6..a61a3067d0 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "135.0.0" + spec.version = "136.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/135.0.0/WebRTC-M135.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/136.0.0/WebRTC-M136.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index c3af2f46c4..24192e5fe0 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -33,6 +33,7 @@ "133.0.0": "https://github.com/stasel/WebRTC/releases/download/133.0.0/WebRTC-M133.xcframework.zip", "134.0.0": "https://github.com/stasel/WebRTC/releases/download/134.0.0/WebRTC-M134.xcframework.zip", "135.0.0": "https://github.com/stasel/WebRTC/releases/download/135.0.0/WebRTC-M135.xcframework.zip", + "136.0.0": "https://github.com/stasel/WebRTC/releases/download/136.0.0/WebRTC-M136.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From b85669f32ffb3f48ce3a8f18ad828c6f559a8a0c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 30 May 2025 11:04:42 +0200 Subject: [PATCH 39/74] Updated files for release M137 (#125) --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index c003136a94..dd2b60db9e 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/136.0.0/WebRTC-M136.xcframework.zip", - checksum: "1d6f76b91ca6d40a143cec093781e3cc954a6754edced4662851aaead96e19ef" + url: "https://github.com/stasel/WebRTC/releases/download/137.0.0/WebRTC-M137.xcframework.zip", + checksum: "9b45c5c5ecae392403758bb7262f408aa3cff705d41e862dd766856b610c3edd" ), ] ) diff --git a/README.md b/README.md index 644a5d8633..814c2d648f 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("136.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("137.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index a61a3067d0..cb51ce40f4 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "136.0.0" + spec.version = "137.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/136.0.0/WebRTC-M136.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/137.0.0/WebRTC-M137.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 24192e5fe0..a54afd254c 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -34,6 +34,7 @@ "134.0.0": "https://github.com/stasel/WebRTC/releases/download/134.0.0/WebRTC-M134.xcframework.zip", "135.0.0": "https://github.com/stasel/WebRTC/releases/download/135.0.0/WebRTC-M135.xcframework.zip", "136.0.0": "https://github.com/stasel/WebRTC/releases/download/136.0.0/WebRTC-M136.xcframework.zip", + "137.0.0": "https://github.com/stasel/WebRTC/releases/download/137.0.0/WebRTC-M137.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 820d216010b6bb5695139852ec6740edd6f790ff Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 6 Jul 2025 23:12:03 +0200 Subject: [PATCH 40/74] Updated files for release M138 (#126) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index dd2b60db9e..34d64cb769 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/137.0.0/WebRTC-M137.xcframework.zip", - checksum: "9b45c5c5ecae392403758bb7262f408aa3cff705d41e862dd766856b610c3edd" + url: "https://github.com/stasel/WebRTC/releases/download/138.0.0/WebRTC-M138.xcframework.zip", + checksum: "75ef1aa5b05c83ecf7fe4d020c0133c04c9817165225f66a473e5850b168f79b" ), ] ) diff --git a/README.md b/README.md index 814c2d648f..5c62557967 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("137.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("138.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index cb51ce40f4..c3e3c69582 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "137.0.0" + spec.version = "138.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/137.0.0/WebRTC-M137.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/138.0.0/WebRTC-M138.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index a54afd254c..5c9c9b0031 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -35,6 +35,7 @@ "135.0.0": "https://github.com/stasel/WebRTC/releases/download/135.0.0/WebRTC-M135.xcframework.zip", "136.0.0": "https://github.com/stasel/WebRTC/releases/download/136.0.0/WebRTC-M136.xcframework.zip", "137.0.0": "https://github.com/stasel/WebRTC/releases/download/137.0.0/WebRTC-M137.xcframework.zip", + "138.0.0": "https://github.com/stasel/WebRTC/releases/download/138.0.0/WebRTC-M138.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From d8f47164ab8180dd3a44f625d1774085c1bbd682 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 15 Aug 2025 22:21:24 +0200 Subject: [PATCH 41/74] Updated files for release M139 (#128) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 34d64cb769..5370680079 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/138.0.0/WebRTC-M138.xcframework.zip", - checksum: "75ef1aa5b05c83ecf7fe4d020c0133c04c9817165225f66a473e5850b168f79b" + url: "https://github.com/stasel/WebRTC/releases/download/139.0.0/WebRTC-M139.xcframework.zip", + checksum: "c3f041d4e1c0b9b12ae9f45e4e702205ec1cbe7f3146b32bd1621209f7dbae07" ), ] ) diff --git a/README.md b/README.md index 5c62557967..f58ca45883 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("138.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("139.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index c3e3c69582..80506a7c6a 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "138.0.0" + spec.version = "139.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/138.0.0/WebRTC-M138.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/139.0.0/WebRTC-M139.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 5c9c9b0031..6f78e95ebd 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -36,6 +36,7 @@ "136.0.0": "https://github.com/stasel/WebRTC/releases/download/136.0.0/WebRTC-M136.xcframework.zip", "137.0.0": "https://github.com/stasel/WebRTC/releases/download/137.0.0/WebRTC-M137.xcframework.zip", "138.0.0": "https://github.com/stasel/WebRTC/releases/download/138.0.0/WebRTC-M138.xcframework.zip", + "139.0.0": "https://github.com/stasel/WebRTC/releases/download/139.0.0/WebRTC-M139.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 86dbb5cb57e4da009b859a6245b1c10d610f215a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 10 Sep 2025 09:10:56 +0200 Subject: [PATCH 42/74] Updated files for release M140 (#129) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 5370680079..316ea05683 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/139.0.0/WebRTC-M139.xcframework.zip", - checksum: "c3f041d4e1c0b9b12ae9f45e4e702205ec1cbe7f3146b32bd1621209f7dbae07" + url: "https://github.com/stasel/WebRTC/releases/download/140.0.0/WebRTC-M140.xcframework.zip", + checksum: "0d61faf67dd145545bf8a0017bdcdbe7a9a1f3a96cce0d501e526655711d98d2" ), ] ) diff --git a/README.md b/README.md index f58ca45883..196e76e7f1 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("139.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("140.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 80506a7c6a..73c0d28515 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "139.0.0" + spec.version = "140.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/139.0.0/WebRTC-M139.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/140.0.0/WebRTC-M140.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 6f78e95ebd..6b2fc3465e 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -37,6 +37,7 @@ "137.0.0": "https://github.com/stasel/WebRTC/releases/download/137.0.0/WebRTC-M137.xcframework.zip", "138.0.0": "https://github.com/stasel/WebRTC/releases/download/138.0.0/WebRTC-M138.xcframework.zip", "139.0.0": "https://github.com/stasel/WebRTC/releases/download/139.0.0/WebRTC-M139.xcframework.zip", + "140.0.0": "https://github.com/stasel/WebRTC/releases/download/140.0.0/WebRTC-M140.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 117d290e37742ea3a792a345f8ba1ec268eb7090 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 5 Oct 2025 22:18:23 +0200 Subject: [PATCH 43/74] Updated files for release M141 (#131) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 316ea05683..736b6719e9 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/140.0.0/WebRTC-M140.xcframework.zip", - checksum: "0d61faf67dd145545bf8a0017bdcdbe7a9a1f3a96cce0d501e526655711d98d2" + url: "https://github.com/stasel/WebRTC/releases/download/141.0.0/WebRTC-M141.xcframework.zip", + checksum: "e3b9bc1aed7a6f3f747a62567680ac7837bdbb74d1fae8f0f543131bc1bf8a5f" ), ] ) diff --git a/README.md b/README.md index 196e76e7f1..ffedd8794c 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("140.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("141.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 73c0d28515..765c1f7780 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "140.0.0" + spec.version = "141.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/140.0.0/WebRTC-M140.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/141.0.0/WebRTC-M141.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 6b2fc3465e..1667750963 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -38,6 +38,7 @@ "138.0.0": "https://github.com/stasel/WebRTC/releases/download/138.0.0/WebRTC-M138.xcframework.zip", "139.0.0": "https://github.com/stasel/WebRTC/releases/download/139.0.0/WebRTC-M139.xcframework.zip", "140.0.0": "https://github.com/stasel/WebRTC/releases/download/140.0.0/WebRTC-M140.xcframework.zip", + "141.0.0": "https://github.com/stasel/WebRTC/releases/download/141.0.0/WebRTC-M141.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 726189db18383b22ded8fe314db387ed6d3f4483 Mon Sep 17 00:00:00 2001 From: Anthony Date: Thu, 26 Mar 2026 22:59:23 +0100 Subject: [PATCH 44/74] Fix release workflow build failures (#137) * Skip to current stable milestone and use dynamic repo Query the Chromium Dashboard for the current stable milestone instead of always targeting latestRelease + 1. Exit with an error if the milestone cannot be determined. Use GITHUB_REPOSITORY env var for GitHub API write calls so the script works on forks as well as upstream. * Pin Xcode version and upload zip to preserve framework symlinks * Fix PR comment * Run workflow daily * Fix version regex in release script to match any X.Y.Z version --- .github/workflows/webrtc-build.yml | 10 ++++++- .github/workflows/webrtc-release.yml | 12 ++++++-- scripts/release.py | 45 +++++++++++++++++++++------- 3 files changed, 53 insertions(+), 14 deletions(-) diff --git a/.github/workflows/webrtc-build.yml b/.github/workflows/webrtc-build.yml index 2bfd96f058..8c0b10dcbb 100644 --- a/.github/workflows/webrtc-build.yml +++ b/.github/workflows/webrtc-build.yml @@ -31,6 +31,14 @@ jobs: steps: - name: Check out repository code uses: actions/checkout@v3 + # WebRTC milestone branches ship with frozen Chromium buildtools that + # only support the Xcode/SDK version current at the time of the branch + # cut. Newer Xcode versions introduce SDK framework splits (e.g. + # DarwinFoundation, UIUtilities) that break the build. Pin to the + # version expected by the buildtools (see build/mac_toolchain.py in + # the WebRTC source for each milestone). + - name: Select Xcode + run: sudo xcode-select -s /Applications/Xcode_16.1.app - name: Building WebRTC framework run: | sh clean.sh @@ -45,4 +53,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: WebRTC.xcframework - path: src/out/WebRTC.xcframework + path: src/out/WebRTC-*.xcframework.zip diff --git a/.github/workflows/webrtc-release.yml b/.github/workflows/webrtc-release.yml index af463b8aa5..85bf01f0bd 100644 --- a/.github/workflows/webrtc-release.yml +++ b/.github/workflows/webrtc-release.yml @@ -3,7 +3,7 @@ run-name: WebRTC Release on: workflow_dispatch: schedule: - - cron: '0 12 * * 3' + - cron: '0 12 * * *' jobs: Build-Script: runs-on: macos-latest @@ -12,11 +12,19 @@ jobs: steps: - name: Check out repository code uses: actions/checkout@v3 + # WebRTC milestone branches ship with frozen Chromium buildtools that + # only support the Xcode/SDK version current at the time of the branch + # cut. Newer Xcode versions introduce SDK framework splits (e.g. + # DarwinFoundation, UIUtilities) that break the build. Pin to the + # version expected by the buildtools (see build/mac_toolchain.py in + # the WebRTC source for each milestone). + - name: Select Xcode + run: sudo xcode-select -s /Applications/Xcode_16.1.app - name: Set up Python 3.x uses: actions/setup-python@v4 with: python-version: "3.x" - - name: Running WebRTC weekly release checks + - name: Running WebRTC release checks run: | sh clean.sh pip install requests python-telegram-bot diff --git a/scripts/release.py b/scripts/release.py index c2b7ce964e..8b64b0c88c 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -6,6 +6,7 @@ import telegram GITHUB_TOKEN=os.environ.get("GITHUB_TOKEN") +GITHUB_REPO=os.environ.get("GITHUB_REPOSITORY", "stasel/WebRTC") TELEGRAM_TOKEN=os.environ.get("TELEGRAM_TOKEN") TELEGRAM_CHAT_ID=os.environ.get("TELEGRAM_CHAT_ID") @@ -22,16 +23,38 @@ class BuildMetadata: commit: str branch: str +def getStableMilestone(): + """Find the current stable milestone from the Chromium Dashboard.""" + try: + response = requests.get("https://chromiumdash.appspot.com/fetch_milestones") + response.raise_for_status() + milestones = response.json() + stable = [m for m in milestones if m.get("schedule_phase") == "stable"] + if stable: + return int(max(stable, key=lambda m: m["milestone"])["milestone"]) + print("Warning: no milestone with schedule_phase 'stable' found") + except (requests.RequestException, KeyError, ValueError, TypeError) as e: + print(f"Warning: failed to fetch stable milestone: {e}") + return None + def getNextRelease(): # Get current version - releases = requests.get("https://api.github.com/repos/stasel/WebRTC/releases", headers={'Authorization': f"token {GITHUB_TOKEN}"}).json() + releases = requests.get(f"https://api.github.com/repos/{GITHUB_REPO}/releases", headers={'Authorization': f"token {GITHUB_TOKEN}"}).json() print(releases) latestReleaseVersion = int(releases[0]["tag_name"].split(".")[0]) latestReleaseDate = datetime.fromisoformat(releases[0]["published_at"].replace("Z", "")) print(f"Latest release: version {latestReleaseVersion}, date: {latestReleaseDate}") - # Get next version - nextReleaseVersion = latestReleaseVersion + 1 + # Get the current stable milestone + stableMilestone = getStableMilestone() + if not stableMilestone: + print("❌ Could not determine current stable milestone") + os._exit(os.EX_SOFTWARE) + + nextReleaseVersion = max(latestReleaseVersion + 1, stableMilestone) + if nextReleaseVersion > latestReleaseVersion + 1: + print(f"Current stable milestone is M{stableMilestone}, skipping ahead from M{latestReleaseVersion + 1}") + milestones = requests.get(f"https://chromiumdash.appspot.com/fetch_milestone_schedule?mstone={nextReleaseVersion}").json() nextReleaseDate = datetime.fromisoformat(milestones["mstones"][0]["stable_date"]) print(f"Next release: version {nextReleaseVersion}, date: {nextReleaseDate}") @@ -72,7 +95,7 @@ def createReleaseDraft(release, buildMetadata): 'body': body } headers = {'accept': 'application/vnd.github.v3+json', 'Authorization': f'token {GITHUB_TOKEN}'} - return requests.post("https://api.github.com/repos/stasel/WebRTC/releases", json = fields, headers = headers).json() + return requests.post(f"https://api.github.com/repos/{GITHUB_REPO}/releases", json = fields, headers = headers).json() def uploadReleaseAsset(url, assetLocalPath, assetName): url = url.replace(u'{?name,label}','') @@ -92,9 +115,9 @@ def createPullRequest(release, head): 'title': f'Release M{release.version}', 'head': head, 'base': 'latest', - 'body': 'Created by an automated sotfware 🤖' + 'body': f'Updated files for release M{release.version}.' } - response = requests.post("https://api.github.com/repos/stasel/WebRTC/pulls", json = body, headers = headers) + response = requests.post(f"https://api.github.com/repos/{GITHUB_REPO}/pulls", json = body, headers = headers) success = response.status_code == requests.codes.created if not success: print(response) @@ -155,14 +178,14 @@ def createPullRequest(release, head): # Change code print("➡️ Applying code changes...") - os.system(f"sed -i '' -E 's/[0-9]+.0.0\/WebRTC-M[0-9]+/{nextRelease.version}.0.0\/WebRTC-M{nextRelease.version}/g' Package.swift WebRTC-lib.podspec") + os.system(f"sed -i '' -E 's/[0-9]+\.[0-9]+\.[0-9]+\/WebRTC-M[0-9]+/{nextRelease.version}.0.0\/WebRTC-M{nextRelease.version}/g' Package.swift WebRTC-lib.podspec") os.system(f"sed -i '' -E 's/checksum: \"[0-9a-f]+\"/checksum: \"{buildMetadata.checksum}\"/g' Package.swift WebRTC-lib.podspec ") - os.system(f"sed -i '' -E 's/.upToNextMajor\\(\"[0-9]+.0.0/.upToNextMajor\\(\"{nextRelease.version}.0.0/g' README.md") - os.system(f"sed -i '' -E 's/spec.version = \"[0-9]+.0.0\"/spec.version = \"{nextRelease.version}.0.0\"/g' WebRTC-lib.podspec") + os.system(f"sed -i '' -E 's/.upToNextMajor\\(\"[0-9]+\.[0-9]+\.[0-9]+/.upToNextMajor\\(\"{nextRelease.version}.0.0/g' README.md") + os.system(f"sed -i '' -E 's/spec.version = \"[0-9]+\.[0-9]+\.[0-9]+\"/spec.version = \"{nextRelease.version}.0.0\"/g' WebRTC-lib.podspec") cartageFile = open("WebRTC.json", 'r') cartageJSON = json.loads(cartageFile.read()) - cartageJSON[f'{nextRelease.version}.0.0'] = f'https://github.com/stasel/WebRTC/releases/download/{nextRelease.version}.0.0/WebRTC-M{nextRelease.version}.xcframework.zip' + cartageJSON[f'{nextRelease.version}.0.0'] = f'https://github.com/{GITHUB_REPO}/releases/download/{nextRelease.version}.0.0/WebRTC-M{nextRelease.version}.xcframework.zip' cartageFile.close() cartageJSONWrite = open("WebRTC.json", 'w') cartageJSONWrite.write(json.dumps(cartageJSON, indent=4, sort_keys=True)) @@ -186,7 +209,7 @@ def createPullRequest(release, head): if TELEGRAM_TOKEN and TELEGRAM_CHAT_ID: print("➡️ Sending Telegram notification...") bot = telegram.Bot(token=TELEGRAM_TOKEN) - message = f"New WebRTC Release M{nextRelease.version} is now available.\nCheck the PR here: https://github.com/stasel/WebRTC/pulls" + message = f"New WebRTC Release M{nextRelease.version} is now available.\nCheck the PR here: https://github.com/{GITHUB_REPO}/pulls" bot.send_message(chat_id=TELEGRAM_CHAT_ID, text=message) print(f"✅ Done") From 2352635e2d043ef43fb590f3e70f01507d06910f Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Fri, 27 Mar 2026 10:59:28 +0100 Subject: [PATCH 45/74] 2026 updates (#139) * Added .build to .gitignore * Moved clean.sh to scripts folder * Update Xcode version to 26.2 * Added VP9,h264 and h265 by default * changed output folder from ./src/out to ./out * Removed telegram notifications * Added python dependency install * Readme update * Minor fixes --- .github/workflows/webrtc-build.yml | 26 +++++++++++++---------- .github/workflows/webrtc-release.yml | 26 ++++++++++++++++------- .gitignore | 2 ++ README.md | 2 +- clean.sh | 1 - scripts/build.sh | 31 ++++++++++++++-------------- scripts/clean.sh | 1 + scripts/release.py | 13 +----------- 8 files changed, 54 insertions(+), 48 deletions(-) delete mode 100644 clean.sh create mode 100644 scripts/clean.sh diff --git a/.github/workflows/webrtc-build.yml b/.github/workflows/webrtc-build.yml index 8c0b10dcbb..f13483ea2c 100644 --- a/.github/workflows/webrtc-build.yml +++ b/.github/workflows/webrtc-build.yml @@ -1,25 +1,29 @@ name: WebRTC Manual Build run-name: WebRTC Manual Build + +env: + XCODE_VERSION: 26.2 + on: workflow_dispatch: inputs: branch: - description: 'webRTC branch head. Ex: branch-heads/6167' + description: "webRTC branch head. Ex: branch-heads/6167" required: true default: "branch-heads/0000" type: string ios: - description: 'Build iOS libraries' + description: "Build iOS libraries" required: true default: true type: boolean macos: - description: 'Build macOS libraries' + description: "Build macOS libraries" required: true default: true type: boolean maccatalyst: - description: 'Build macOS Catalyst libraries' + description: "Build macOS Catalyst libraries" required: true default: true type: boolean @@ -30,27 +34,27 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Check out repository code - uses: actions/checkout@v3 + uses: actions/checkout@v6 # WebRTC milestone branches ship with frozen Chromium buildtools that # only support the Xcode/SDK version current at the time of the branch # cut. Newer Xcode versions introduce SDK framework splits (e.g. # DarwinFoundation, UIUtilities) that break the build. Pin to the # version expected by the buildtools (see build/mac_toolchain.py in # the WebRTC source for each milestone). - - name: Select Xcode - run: sudo xcode-select -s /Applications/Xcode_16.1.app + - name: Setup Xcode + run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app + - name: Building WebRTC framework run: | - sh clean.sh + sh scripts/clean.sh sh scripts/build.sh env: BRANCH: ${{ inputs.branch }} IOS: ${{ inputs.ios }} MACOS: ${{ inputs.macos }} MAC_CATALYST: ${{ inputs.maccatalyst }} - BUILD_VP9: true - name: Upload framework - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: WebRTC.xcframework - path: src/out/WebRTC-*.xcframework.zip + path: out/WebRTC-*.xcframework.zip diff --git a/.github/workflows/webrtc-release.yml b/.github/workflows/webrtc-release.yml index 85bf01f0bd..fd675cc6b6 100644 --- a/.github/workflows/webrtc-release.yml +++ b/.github/workflows/webrtc-release.yml @@ -1,9 +1,13 @@ name: WebRTC Release run-name: WebRTC Release + +env: + XCODE_VERSION: 26.2 + on: workflow_dispatch: schedule: - - cron: '0 12 * * *' + - cron: "0 12 * * *" jobs: Build-Script: runs-on: macos-latest @@ -11,22 +15,28 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Check out repository code - uses: actions/checkout@v3 + uses: actions/checkout@v6 # WebRTC milestone branches ship with frozen Chromium buildtools that # only support the Xcode/SDK version current at the time of the branch # cut. Newer Xcode versions introduce SDK framework splits (e.g. # DarwinFoundation, UIUtilities) that break the build. Pin to the # version expected by the buildtools (see build/mac_toolchain.py in # the WebRTC source for each milestone). - - name: Select Xcode - run: sudo xcode-select -s /Applications/Xcode_16.1.app + # + # To find which Xcode version is available by which runner: + # https://github.com/actions/runner-images/tree/main/images/macos + - name: Setup Xcode + run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app + - name: Set up Python 3.x - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: python-version: "3.x" + + - name: Install dependencies + run: pip install requests + - name: Running WebRTC release checks run: | - sh clean.sh - pip install requests python-telegram-bot + sh scripts/clean.sh python -u scripts/release.py - diff --git a/.gitignore b/.gitignore index ca276bfd0a..20c75c1a8e 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ src .cipd .gclient_previous_sync_commits third_party +.build +out \ No newline at end of file diff --git a/README.md b/README.md index ffedd8794c..df8deed6f0 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ The binary releases correspond with official Chromium releases and branches as s * The build process is open source using GitHub actions. * Dynamic framework (xcframework format) which contains multiple binaries for macOS and iOS. * Since [Xcode 14](https://developer.apple.com/documentation/Xcode-Release-Notes/xcode-14-release-notes), bitcode is deprecated. Version M103 and above does not include bitcode. +* Added support for extra encodings: VP9, H264, H265 (HEVC) ## 📢 Requirements * iOS 12+ @@ -67,7 +68,6 @@ pod install Read more about Cocoapods: https://cocoapods.org ### Carthage -**Requires Carthage version 0.38 or higher** Add the following dependency to the `Cartfile` in your project: ``` diff --git a/clean.sh b/clean.sh deleted file mode 100644 index a3e8d0b309..0000000000 --- a/clean.sh +++ /dev/null @@ -1 +0,0 @@ -rm -rf .cipd .gclient* depot_tools src diff --git a/scripts/build.sh b/scripts/build.sh index 8a2121998c..16eae63c6f 100644 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -4,21 +4,22 @@ ## Created by Stasel ## BSD-3 License ## -## Example usage: MACOS=true IOS=true BUILD_VP9=true sh build.sh +## Example usage (from the repository root): BRANCH=branch-heads/7727 MACOS=true IOS=true sh scripts/build.sh # Configs DEBUG="${DEBUG:-false}" -BUILD_VP9="${BUILD_VP9:-false}" -BRANCH="${BRANCH:-master}" +BRANCH="${BRANCH:-main}" IOS="${IOS:-false}" MACOS="${MACOS:-false}" MAC_CATALYST="${MAC_CATALYST:-false}" -OUTPUT_DIR="./out" -XCFRAMEWORK_DIR="out/WebRTC.xcframework" -COMMON_GN_ARGS="is_debug=${DEBUG} rtc_libvpx_build_vp9=${BUILD_VP9} is_component_build=false rtc_include_tests=false rtc_enable_objc_symbol_export=true enable_stripping=true enable_dsyms=false use_lld=true rtc_ios_use_opengl_rendering=true" +ROOT_DIR="$(pwd)" +OUTPUT_DIR="${ROOT_DIR}/out" +XCFRAMEWORK_DIR="${OUTPUT_DIR}/WebRTC.xcframework" +COMMON_GN_ARGS="is_debug=${DEBUG} rtc_libvpx_build_vp9=true is_component_build=false rtc_include_tests=false rtc_enable_objc_symbol_export=true enable_stripping=true enable_dsyms=false use_lld=true rtc_ios_use_opengl_rendering=true rtc_system_openh264=true rtc_use_h265=true" PLISTBUDDY_EXEC="/usr/libexec/PlistBuddy" + build_iOS() { local arch=$1 local environment=$2 @@ -137,11 +138,11 @@ if [[ "$IOS" = true ]]; then plist_add_library $LIB_IOS_INDEX $IOS_LIB_IDENTIFIER "ios" plist_add_library $LIB_IOS_SIMULATOR_INDEX $IOS_SIM_LIB_IDENTIFIER "ios" "simulator" - cp -r out/ios-arm64-device/WebRTC.framework "${XCFRAMEWORK_DIR}/${IOS_LIB_IDENTIFIER}" - cp -r out/ios-x64-simulator/WebRTC.framework "${XCFRAMEWORK_DIR}/${IOS_SIM_LIB_IDENTIFIER}" + cp -r "${OUTPUT_DIR}/ios-arm64-device/WebRTC.framework" "${XCFRAMEWORK_DIR}/${IOS_LIB_IDENTIFIER}" + cp -r "${OUTPUT_DIR}/ios-x64-simulator/WebRTC.framework" "${XCFRAMEWORK_DIR}/${IOS_SIM_LIB_IDENTIFIER}" - LIPO_IOS_FLAGS="out/ios-arm64-device/WebRTC.framework/WebRTC" - LIPO_IOS_SIM_FLAGS="out/ios-x64-simulator/WebRTC.framework/WebRTC out/ios-arm64-simulator/WebRTC.framework/WebRTC" + LIPO_IOS_FLAGS="${OUTPUT_DIR}/ios-arm64-device/WebRTC.framework/WebRTC" + LIPO_IOS_SIM_FLAGS="${OUTPUT_DIR}/ios-x64-simulator/WebRTC.framework/WebRTC ${OUTPUT_DIR}/ios-arm64-simulator/WebRTC.framework/WebRTC" plist_add_architecture $LIB_IOS_INDEX "arm64" plist_add_architecture $LIB_IOS_SIMULATOR_INDEX "arm64" @@ -167,8 +168,8 @@ if [ "$MACOS" = true ]; then plist_add_architecture $LIB_COUNT "x86_64" plist_add_architecture $LIB_COUNT "arm64" - cp -RP out/macos-x64/WebRTC.framework "${XCFRAMEWORK_DIR}/${MAC_LIB_IDENTIFIER}" - lipo -create -output "${XCFRAMEWORK_DIR}/${MAC_LIB_IDENTIFIER}/WebRTC.framework/Versions/A/WebRTC" out/macos-x64/WebRTC.framework/WebRTC out/macos-arm64/WebRTC.framework/WebRTC + cp -RP "${OUTPUT_DIR}/macos-x64/WebRTC.framework" "${XCFRAMEWORK_DIR}/${MAC_LIB_IDENTIFIER}" + lipo -create -output "${XCFRAMEWORK_DIR}/${MAC_LIB_IDENTIFIER}/WebRTC.framework/Versions/A/WebRTC" "${OUTPUT_DIR}/macos-x64/WebRTC.framework/WebRTC" "${OUTPUT_DIR}/macos-arm64/WebRTC.framework/WebRTC" LIB_COUNT=$((LIB_COUNT+1)) fi @@ -182,8 +183,8 @@ if [ "$MAC_CATALYST" = true ]; then plist_add_architecture $LIB_COUNT "x86_64" plist_add_architecture $LIB_COUNT "arm64" - cp -RP out/catalyst-x64/WebRTC.framework "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}" - lipo -create -output "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}/WebRTC.framework/Versions/A/WebRTC" out/catalyst-x64/WebRTC.framework/WebRTC out/catalyst-arm64/WebRTC.framework/WebRTC + cp -RP "${OUTPUT_DIR}/catalyst-x64/WebRTC.framework" "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}" + lipo -create -output "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}/WebRTC.framework/Versions/A/WebRTC" "${OUTPUT_DIR}/catalyst-x64/WebRTC.framework/WebRTC" "${OUTPUT_DIR}/catalyst-arm64/WebRTC.framework/WebRTC" LIB_COUNT=$((LIB_COUNT+1)) fi @@ -191,7 +192,7 @@ fi cp LICENSE ${XCFRAMEWORK_DIR} # Step 7 - archive the framework -cd out +cd "${OUTPUT_DIR}" NOW=$(date -u +"%Y-%m-%dT%H-%M-%S") OUTPUT_NAME=WebRTC-$NOW.xcframework.zip zip --symlinks -r $OUTPUT_NAME WebRTC.xcframework/ diff --git a/scripts/clean.sh b/scripts/clean.sh new file mode 100644 index 0000000000..e236ee5706 --- /dev/null +++ b/scripts/clean.sh @@ -0,0 +1 @@ +rm -rf .cipd .gclient* depot_tools src .build out diff --git a/scripts/release.py b/scripts/release.py index 8b64b0c88c..74e7e9963f 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -3,12 +3,9 @@ import requests from datetime import datetime, timedelta from dataclasses import dataclass -import telegram GITHUB_TOKEN=os.environ.get("GITHUB_TOKEN") GITHUB_REPO=os.environ.get("GITHUB_REPOSITORY", "stasel/WebRTC") -TELEGRAM_TOKEN=os.environ.get("TELEGRAM_TOKEN") -TELEGRAM_CHAT_ID=os.environ.get("TELEGRAM_CHAT_ID") @dataclass class NextReleaseResult: @@ -69,7 +66,6 @@ def isReleaseAvailable(release): return datetime.today() >= (release.releaseDate + timedelta(days=1)) def buildWebRTC(branch): - os.environ["BUILD_VP9"] = "true" os.environ["BRANCH"] = branch os.environ["IOS"] = "true" os.environ["MACOS"] = "true" @@ -150,7 +146,7 @@ def createPullRequest(release, head): print("✅ WebRTC build successful\n") # Get metadata build file - it has all the information needed about the build - outputDir="src/out" + outputDir="./out" buildMetadata = getBuildMetadata(outputDir) print(buildMetadata) @@ -205,11 +201,4 @@ def createPullRequest(release, head): print("❌ Failed creating pull request in github") os._exit(os.EX_SOFTWARE) - # Notify about the new release via Telegram bot - if TELEGRAM_TOKEN and TELEGRAM_CHAT_ID: - print("➡️ Sending Telegram notification...") - bot = telegram.Bot(token=TELEGRAM_TOKEN) - message = f"New WebRTC Release M{nextRelease.version} is now available.\nCheck the PR here: https://github.com/{GITHUB_REPO}/pulls" - bot.send_message(chat_id=TELEGRAM_CHAT_ID, text=message) - print(f"✅ Done") From 0062ca8032c43ec65e3ae51792aa531a2807dd72 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 20:03:18 +0100 Subject: [PATCH 46/74] Updated files for release M146 (#143) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 736b6719e9..1fa2773ada 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/141.0.0/WebRTC-M141.xcframework.zip", - checksum: "e3b9bc1aed7a6f3f747a62567680ac7837bdbb74d1fae8f0f543131bc1bf8a5f" + url: "https://github.com/stasel/WebRTC/releases/download/146.0.0/WebRTC-M146.xcframework.zip", + checksum: "f805abcbe577f838ef86b5ecfd03bd2151dc8709360e720f6ed364a1b7a0bfb2" ), ] ) diff --git a/README.md b/README.md index df8deed6f0..1593dbe268 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("141.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("146.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 765c1f7780..455afcc058 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "141.0.0" + spec.version = "146.0.0" spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " spec.description = <<-DESC This pod contains unofficial distribution of WebRTC framework binaries for iOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/141.0.0/WebRTC-M141.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/146.0.0/WebRTC-M146.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 1667750963..6db3715999 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -39,6 +39,7 @@ "139.0.0": "https://github.com/stasel/WebRTC/releases/download/139.0.0/WebRTC-M139.xcframework.zip", "140.0.0": "https://github.com/stasel/WebRTC/releases/download/140.0.0/WebRTC-M140.xcframework.zip", "141.0.0": "https://github.com/stasel/WebRTC/releases/download/141.0.0/WebRTC-M141.xcframework.zip", + "146.0.0": "https://github.com/stasel/WebRTC/releases/download/146.0.0/WebRTC-M146.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From d09f0670e96ea69ac47fef167f1d9fec6bb55430 Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Fri, 27 Mar 2026 20:09:54 +0100 Subject: [PATCH 47/74] Update description in podspec --- WebRTC-lib.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 455afcc058..eea2c5a9a2 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -2,9 +2,9 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" spec.version = "146.0.0" - spec.summary = "Unofficial distribution of WebRTC framework binaries for iOS. " + spec.summary = " A community-driven distribution of up to date WebRTC framework binaries for iOS and macOS." spec.description = <<-DESC - This pod contains unofficial distribution of WebRTC framework binaries for iOS. + This pod contains community-driven distribution of WebRTC framework binaries for iOS and macOS. All binaries in this repository are compiled from the official WebRTC source code without any modifications to the sources code or to the output binaries. DESC From e8b5efb9d921a7d3044d3928ae235b8846436e41 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 22:39:35 +0200 Subject: [PATCH 48/74] Updated files for release M147 (#144) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 1fa2773ada..a807e487e7 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/146.0.0/WebRTC-M146.xcframework.zip", - checksum: "f805abcbe577f838ef86b5ecfd03bd2151dc8709360e720f6ed364a1b7a0bfb2" + url: "https://github.com/stasel/WebRTC/releases/download/147.0.0/WebRTC-M147.xcframework.zip", + checksum: "49f9b1713432c19f408e3218fc8526c7692fafca5869f7ec5f5991614276ed40" ), ] ) diff --git a/README.md b/README.md index 1593dbe268..40e6012422 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("146.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("147.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index eea2c5a9a2..3428ffae22 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "146.0.0" + spec.version = "147.0.0" spec.summary = " A community-driven distribution of up to date WebRTC framework binaries for iOS and macOS." spec.description = <<-DESC This pod contains community-driven distribution of WebRTC framework binaries for iOS and macOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/146.0.0/WebRTC-M146.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/147.0.0/WebRTC-M147.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 6db3715999..3c38660b3a 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -40,6 +40,7 @@ "140.0.0": "https://github.com/stasel/WebRTC/releases/download/140.0.0/WebRTC-M140.xcframework.zip", "141.0.0": "https://github.com/stasel/WebRTC/releases/download/141.0.0/WebRTC-M141.xcframework.zip", "146.0.0": "https://github.com/stasel/WebRTC/releases/download/146.0.0/WebRTC-M146.xcframework.zip", + "147.0.0": "https://github.com/stasel/WebRTC/releases/download/147.0.0/WebRTC-M147.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 7b7272aa4c2ebb597eaf0bf4f81ec19b6a0a44a3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 6 Jun 2026 15:47:09 +0200 Subject: [PATCH 49/74] Updated files for release M148 (#146) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index a807e487e7..d065054283 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/147.0.0/WebRTC-M147.xcframework.zip", - checksum: "49f9b1713432c19f408e3218fc8526c7692fafca5869f7ec5f5991614276ed40" + url: "https://github.com/stasel/WebRTC/releases/download/148.0.0/WebRTC-M148.xcframework.zip", + checksum: "605ae20773b0fd6ee337d18d8e741336d5de427684d40cfd83bb8582daf285de" ), ] ) diff --git a/README.md b/README.md index 40e6012422..519c2ca462 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("147.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("148.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 3428ffae22..86afc57702 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "147.0.0" + spec.version = "148.0.0" spec.summary = " A community-driven distribution of up to date WebRTC framework binaries for iOS and macOS." spec.description = <<-DESC This pod contains community-driven distribution of WebRTC framework binaries for iOS and macOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/147.0.0/WebRTC-M147.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/148.0.0/WebRTC-M148.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 3c38660b3a..c61f4e51d2 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -41,6 +41,7 @@ "141.0.0": "https://github.com/stasel/WebRTC/releases/download/141.0.0/WebRTC-M141.xcframework.zip", "146.0.0": "https://github.com/stasel/WebRTC/releases/download/146.0.0/WebRTC-M146.xcframework.zip", "147.0.0": "https://github.com/stasel/WebRTC/releases/download/147.0.0/WebRTC-M147.xcframework.zip", + "148.0.0": "https://github.com/stasel/WebRTC/releases/download/148.0.0/WebRTC-M148.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 9987fbd169c83101c15decabee3d842bebe090b1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 15:26:53 +0200 Subject: [PATCH 50/74] Updated files for release M149 (#151) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index d065054283..a7dcb699f4 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/148.0.0/WebRTC-M148.xcframework.zip", - checksum: "605ae20773b0fd6ee337d18d8e741336d5de427684d40cfd83bb8582daf285de" + url: "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip", + checksum: "9726f1db0c99e69806257a7166fb16f79a41035240384a04803902a509f0fc8c" ), ] ) diff --git a/README.md b/README.md index 519c2ca462..5a98c96947 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("148.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("149.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 86afc57702..6c46b64443 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "148.0.0" + spec.version = "149.0.0" spec.summary = " A community-driven distribution of up to date WebRTC framework binaries for iOS and macOS." spec.description = <<-DESC This pod contains community-driven distribution of WebRTC framework binaries for iOS and macOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/148.0.0/WebRTC-M148.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index c61f4e51d2..cf989d5d93 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -41,6 +41,7 @@ "141.0.0": "https://github.com/stasel/WebRTC/releases/download/141.0.0/WebRTC-M141.xcframework.zip", "146.0.0": "https://github.com/stasel/WebRTC/releases/download/146.0.0/WebRTC-M146.xcframework.zip", "147.0.0": "https://github.com/stasel/WebRTC/releases/download/147.0.0/WebRTC-M147.xcframework.zip", + "149.0.0": "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip", "148.0.0": "https://github.com/stasel/WebRTC/releases/download/148.0.0/WebRTC-M148.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", From 1add557579322d710f42095e1295d8601cb7fa08 Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Tue, 9 Jun 2026 15:27:59 +0200 Subject: [PATCH 51/74] minor reorder --- WebRTC.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebRTC.json b/WebRTC.json index cf989d5d93..798a0f42c9 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -41,8 +41,8 @@ "141.0.0": "https://github.com/stasel/WebRTC/releases/download/141.0.0/WebRTC-M141.xcframework.zip", "146.0.0": "https://github.com/stasel/WebRTC/releases/download/146.0.0/WebRTC-M146.xcframework.zip", "147.0.0": "https://github.com/stasel/WebRTC/releases/download/147.0.0/WebRTC-M147.xcframework.zip", - "149.0.0": "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip", "148.0.0": "https://github.com/stasel/WebRTC/releases/download/148.0.0/WebRTC-M148.xcframework.zip", + "149.0.0": "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From ff4647dc67f00d037c199c69e1a1ee8ceda88236 Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Thu, 18 Jun 2026 23:47:17 +0200 Subject: [PATCH 52/74] Fixed incorrect checksum --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index a7dcb699f4..60910c5de6 100644 --- a/Package.swift +++ b/Package.swift @@ -14,7 +14,7 @@ let package = Package( .binaryTarget( name: "WebRTC", url: "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip", - checksum: "9726f1db0c99e69806257a7166fb16f79a41035240384a04803902a509f0fc8c" + checksum: "79c5a3e49a68de30a99baabaf5b4c0067dd7a0b66fdd4b8afb8ec337e746abba" ), ] ) From 2f30b9f7d330a9303d2ec779064ea803c13b092a Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Thu, 2 Jul 2026 00:33:10 +0200 Subject: [PATCH 53/74] Update Xcode version to 26.5 --- .github/workflows/webrtc-build.yml | 2 +- .github/workflows/webrtc-release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/webrtc-build.yml b/.github/workflows/webrtc-build.yml index f13483ea2c..cfedbce05d 100644 --- a/.github/workflows/webrtc-build.yml +++ b/.github/workflows/webrtc-build.yml @@ -2,7 +2,7 @@ name: WebRTC Manual Build run-name: WebRTC Manual Build env: - XCODE_VERSION: 26.2 + XCODE_VERSION: 26.5 on: workflow_dispatch: diff --git a/.github/workflows/webrtc-release.yml b/.github/workflows/webrtc-release.yml index fd675cc6b6..3aee16bb5f 100644 --- a/.github/workflows/webrtc-release.yml +++ b/.github/workflows/webrtc-release.yml @@ -2,7 +2,7 @@ name: WebRTC Release run-name: WebRTC Release env: - XCODE_VERSION: 26.2 + XCODE_VERSION: 26.5 on: workflow_dispatch: From 94240162ba011cbc7f4c1ca32f705880695303a8 Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Fri, 10 Jul 2026 23:54:18 +0200 Subject: [PATCH 54/74] Fixed macOS arm64 builds broke in M150 (#155) --- scripts/build.sh | 36 +++++++++++++++---- scripts/patches/disable_apple_linker.sh | 46 +++++++++++++++++++++++++ scripts/release.py | 1 - 3 files changed, 76 insertions(+), 7 deletions(-) create mode 100755 scripts/patches/disable_apple_linker.sh diff --git a/scripts/build.sh b/scripts/build.sh index 16eae63c6f..3e11a22a33 100644 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -41,10 +41,11 @@ build_macOS() { # Catalyst builds are not working properly yet. # See: https://groups.google.com/g/discuss-webrtc/c/VZXS4V4mSY4 +# Must link Catalyst with Apple's linker instead of lld (use_lld=false) build_catalyst() { local arch=$1 local gen_dir="${OUTPUT_DIR}/catalyst-${arch}" - local gen_args="${COMMON_GN_ARGS} target_cpu=\"${arch}\" target_environment=\"catalyst\" target_os=\"ios\" ios_deployment_target=\"14.0\" ios_enable_code_signing=false" + local gen_args="${COMMON_GN_ARGS} target_cpu=\"${arch}\" target_environment=\"catalyst\" target_os=\"ios\" ios_deployment_target=\"14.0\" ios_enable_code_signing=false use_lld=false" gn gen "${gen_dir}" --args="${gen_args}" gn args --list ${gen_dir} > ${gen_dir}/gn-args.txt ninja -C "${gen_dir}" framework_objc || exit 1 @@ -71,6 +72,15 @@ plist_add_architecture() { "$PLISTBUDDY_EXEC" -c "Add :AvailableLibraries:${index}:SupportedArchitectures: string ${arch}" "${INFO_PLIST}" } +fix_privacy_manifest() { + local framework=$1 + local nested="${framework}/Versions/A/Versions" + if [ -f "${nested}/A/Resources/PrivacyInfo.xcprivacy" ]; then + mv "${nested}/A/Resources/PrivacyInfo.xcprivacy" "${framework}/Versions/A/Resources/" || exit 1 + rm -rf "${nested}" + fi +} + # Step 1: Download and install depot tools if [ ! -d depot_tools ]; then git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git @@ -83,13 +93,17 @@ export PATH=$(pwd)/depot_tools:$PATH # Step 2 - Download and build WebRTC if [ ! -d src ]; then - fetch --nohooks webrtc_ios + fetch --nohooks webrtc_ios || exit 1 fi cd src -git fetch --all -git checkout $BRANCH +git fetch --all || exit 1 +git checkout "$BRANCH" || exit 1 cd .. -gclient sync --with_branch_heads --with_tags +gclient sync --with_branch_heads --with_tags || exit 1 + +# Step 2.5 - Temp patch for macOS arm64 builds +bash "${ROOT_DIR}/scripts/patches/disable_apple_linker.sh" "${ROOT_DIR}/src/build/toolchain/apple/toolchain.gni" || exit 1 + cd src # Step 3 - Compile and build all frameworks @@ -169,6 +183,15 @@ if [ "$MACOS" = true ]; then plist_add_architecture $LIB_COUNT "arm64" cp -RP "${OUTPUT_DIR}/macos-x64/WebRTC.framework" "${XCFRAMEWORK_DIR}/${MAC_LIB_IDENTIFIER}" + + # The generated macOS framework bundle contains only the umbrella header: + # since M141 the other public headers are left behind in the intermediate + # gen/ directory and never staged into the bundle, which makes the + # framework unusable (https://github.com/stasel/WebRTC/issues/132). + # Copy them in until this is fixed upstream. + cp "${OUTPUT_DIR}/macos-x64/gen/sdk/WebRTC.framework/Headers/"*.h "${XCFRAMEWORK_DIR}/${MAC_LIB_IDENTIFIER}/WebRTC.framework/Versions/A/Headers/" || exit 1 + fix_privacy_manifest "${XCFRAMEWORK_DIR}/${MAC_LIB_IDENTIFIER}/WebRTC.framework" + lipo -create -output "${XCFRAMEWORK_DIR}/${MAC_LIB_IDENTIFIER}/WebRTC.framework/Versions/A/WebRTC" "${OUTPUT_DIR}/macos-x64/WebRTC.framework/WebRTC" "${OUTPUT_DIR}/macos-arm64/WebRTC.framework/WebRTC" LIB_COUNT=$((LIB_COUNT+1)) fi @@ -184,6 +207,7 @@ if [ "$MAC_CATALYST" = true ]; then plist_add_architecture $LIB_COUNT "arm64" cp -RP "${OUTPUT_DIR}/catalyst-x64/WebRTC.framework" "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}" + fix_privacy_manifest "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}/WebRTC.framework" lipo -create -output "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}/WebRTC.framework/Versions/A/WebRTC" "${OUTPUT_DIR}/catalyst-x64/WebRTC.framework/WebRTC" "${OUTPUT_DIR}/catalyst-arm64/WebRTC.framework/WebRTC" LIB_COUNT=$((LIB_COUNT+1)) fi @@ -199,7 +223,7 @@ zip --symlinks -r $OUTPUT_NAME WebRTC.xcframework/ # Step 8 calculate SHA256 checksum CHECKSUM=$(shasum -a 256 $OUTPUT_NAME | awk '{ print $1 }') -COMMIT_HASH=$(git rev-parse HEAD) +COMMIT_HASH=$(git -C ${ROOT_DIR}/src rev-parse HEAD) echo "{ \"file\": \"${OUTPUT_NAME}\", \"checksum\": \"${CHECKSUM}\", \"commit\": \"${COMMIT_HASH}\", \"branch\": \"${BRANCH}\" }" > metadata.json cat metadata.json diff --git a/scripts/patches/disable_apple_linker.sh b/scripts/patches/disable_apple_linker.sh new file mode 100755 index 0000000000..07522b903a --- /dev/null +++ b/scripts/patches/disable_apple_linker.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +## Patch: keep the Chromium toolchain on LLVM's archiver/linker. +## +## M150 pins src/build to a revision where Chromium briefly defaulted macOS +## arm64 builds to Apple's linker and Apple's libtool for static archives +## (crbug.com/502338406). We still link with LLVM's ld64.lld (use_lld=true), +## which cannot read archives created by the rewritten libtool shipped with +## Xcode 26.5+ ("cctools_ld"): the build fails with "couldn't process child: +## __.SYMDEF has unhandled file type" and then the linker crashes. Appending +## "&& false" to the use_apple_linker formula keeps the toolchain using +## llvm-ar for static archives, matching the linker we use (same behavior as +## M149 and earlier). This assignment lives inside toolchain_args, which +## ignores gn args, so it has to be patched in the source. +## +## Upstream made the Apple linker opt-in again on 2026-06-03 (chromium build +## commit a461b6f9832d) and later removed use_apple_linker entirely, so this +## patch is a no-op once a milestone pins a newer src/build revision and can +## be deleted then. +## +## Usage: disable_apple_linker.sh + +set -e + +APPLE_TOOLCHAIN_GNI="$1" + +if [ -z "$APPLE_TOOLCHAIN_GNI" ]; then + echo "error: usage: $0 " >&2 + exit 1 +fi + +if [ ! -f "$APPLE_TOOLCHAIN_GNI" ]; then + echo "error: toolchain file not found: ${APPLE_TOOLCHAIN_GNI}" >&2 + exit 1 +fi + +sed -i '' 's/!(use_remoteexec && use_system_xcode)$/!(use_remoteexec \&\& use_system_xcode) \&\& false/' "$APPLE_TOOLCHAIN_GNI" + +# Guard: if the unpatched formula is still present but our patched form is +# absent, the sed pattern failed to apply (the formula likely changed +# upstream). A newer revision that dropped use_apple_linker leaves neither +# marker, so this correctly no-ops there. +if grep -q 'use_apple_linker =$' "$APPLE_TOOLCHAIN_GNI" && ! grep -q 'use_system_xcode) && false' "$APPLE_TOOLCHAIN_GNI"; then + echo "error: failed to patch use_apple_linker in ${APPLE_TOOLCHAIN_GNI}, the formula has likely changed upstream" >&2 + exit 1 +fi diff --git a/scripts/release.py b/scripts/release.py index 74e7e9963f..0bf35e6ae9 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -37,7 +37,6 @@ def getStableMilestone(): def getNextRelease(): # Get current version releases = requests.get(f"https://api.github.com/repos/{GITHUB_REPO}/releases", headers={'Authorization': f"token {GITHUB_TOKEN}"}).json() - print(releases) latestReleaseVersion = int(releases[0]["tag_name"].split(".")[0]) latestReleaseDate = datetime.fromisoformat(releases[0]["published_at"].replace("Z", "")) print(f"Latest release: version {latestReleaseVersion}, date: {latestReleaseDate}") From 6ed87f05368632f71dc95c89c14c051561710925 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Jul 2026 16:04:16 +0200 Subject: [PATCH 55/74] Updated files for release M150 (#156) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 60910c5de6..4e700b27f6 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip", - checksum: "79c5a3e49a68de30a99baabaf5b4c0067dd7a0b66fdd4b8afb8ec337e746abba" + url: "https://github.com/stasel/WebRTC/releases/download/150.0.0/WebRTC-M150.xcframework.zip", + checksum: "f9890492b0016e4c88ab20f07867b8b420054caedc8a692b2ec6ac041f3cf6b2" ), ] ) diff --git a/README.md b/README.md index 5a98c96947..f27ecd3f9f 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("149.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("150.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 6c46b64443..e5e63e303c 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "149.0.0" + spec.version = "150.0.0" spec.summary = " A community-driven distribution of up to date WebRTC framework binaries for iOS and macOS." spec.description = <<-DESC This pod contains community-driven distribution of WebRTC framework binaries for iOS and macOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/150.0.0/WebRTC-M150.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 798a0f42c9..01b1067ef7 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -43,6 +43,7 @@ "147.0.0": "https://github.com/stasel/WebRTC/releases/download/147.0.0/WebRTC-M147.xcframework.zip", "148.0.0": "https://github.com/stasel/WebRTC/releases/download/148.0.0/WebRTC-M148.xcframework.zip", "149.0.0": "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip", + "150.0.0": "https://github.com/stasel/WebRTC/releases/download/150.0.0/WebRTC-M150.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 6c01ed100dae301f97d290f06f2f4feca50d5497 Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Sat, 11 Jul 2026 16:14:54 +0200 Subject: [PATCH 56/74] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f27ecd3f9f..4527ea1597 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ # WebRTC Binaries for iOS and macOS [![Latest version](https://img.shields.io/github/v/release/stasel/webrtc)](https://github.com/stasel/WebRTC/releases) +[![Cocoapods](https://img.shields.io/cocoapods/v/WebRTC-lib)](https://cocoapods.org/pods/WebRTC-lib) [![Release Date](https://img.shields.io/github/release-date/stasel/webrtc)](https://github.com/stasel/WebRTC/releases) +![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/stasel/WebRTC/webrtc-release.yml?branch=latest&label=Release%20job) [![Total Downloads](https://img.shields.io/github/downloads/stasel/webrtc/total)](https://github.com/stasel/WebRTC/releases) -[![Cocoapods](https://img.shields.io/cocoapods/v/WebRTC-lib)](https://cocoapods.org/pods/WebRTC-lib) This repository contains a community-driven distribution of WebRTC framework binaries for iOS and macOS. From 3bdb63fdd28982ef364e5a08f53c68730a8c87b3 Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Sat, 11 Jul 2026 21:04:39 +0200 Subject: [PATCH 57/74] Fix GitHub Actions badge link in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4527ea1597..c1a0795b2c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Latest version](https://img.shields.io/github/v/release/stasel/webrtc)](https://github.com/stasel/WebRTC/releases) [![Cocoapods](https://img.shields.io/cocoapods/v/WebRTC-lib)](https://cocoapods.org/pods/WebRTC-lib) [![Release Date](https://img.shields.io/github/release-date/stasel/webrtc)](https://github.com/stasel/WebRTC/releases) -![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/stasel/WebRTC/webrtc-release.yml?branch=latest&label=Release%20job) +[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/stasel/WebRTC/webrtc-release.yml?branch=latest&label=Release%20job)](https://github.com/stasel/WebRTC/actions/workflows/webrtc-release.yml) [![Total Downloads](https://img.shields.io/github/downloads/stasel/webrtc/total)](https://github.com/stasel/WebRTC/releases) From 19aa8c1fc7120d50df987b7111f42d5024df3d54 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 8 Aug 2026 00:48:19 +0200 Subject: [PATCH 58/74] Updated files for release M151 (#157) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 4e700b27f6..eee04200ad 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/150.0.0/WebRTC-M150.xcframework.zip", - checksum: "f9890492b0016e4c88ab20f07867b8b420054caedc8a692b2ec6ac041f3cf6b2" + url: "https://github.com/stasel/WebRTC/releases/download/151.0.0/WebRTC-M151.xcframework.zip", + checksum: "64a218fad3d84a0d783321aa9a1eec58ca266ac7879123f86b0b44b703b7d8dc" ), ] ) diff --git a/README.md b/README.md index c1a0795b2c..b8f4b89a46 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("150.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("151.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index e5e63e303c..b56364e2d8 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "150.0.0" + spec.version = "151.0.0" spec.summary = " A community-driven distribution of up to date WebRTC framework binaries for iOS and macOS." spec.description = <<-DESC This pod contains community-driven distribution of WebRTC framework binaries for iOS and macOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/150.0.0/WebRTC-M150.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/151.0.0/WebRTC-M151.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 01b1067ef7..8ba9f56c17 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -44,6 +44,7 @@ "148.0.0": "https://github.com/stasel/WebRTC/releases/download/148.0.0/WebRTC-M148.xcframework.zip", "149.0.0": "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip", "150.0.0": "https://github.com/stasel/WebRTC/releases/download/150.0.0/WebRTC-M150.xcframework.zip", + "151.0.0": "https://github.com/stasel/WebRTC/releases/download/151.0.0/WebRTC-M151.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 88815a675a9ecec5a364e6efd8507466b5a0e222 Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Mon, 31 Aug 2026 01:20:58 +0200 Subject: [PATCH 59/74] Added dSYM files to the release process. Removed M150 macOS temp patch --- README.md | 2 +- scripts/build.sh | 27 ++++++++++----- scripts/patches/disable_apple_linker.sh | 46 ------------------------- scripts/release.py | 22 ++++++++---- 4 files changed, 34 insertions(+), 63 deletions(-) delete mode 100755 scripts/patches/disable_apple_linker.sh diff --git a/README.md b/README.md index b8f4b89a46..5d10f33ee9 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,8 @@ The binary releases correspond with official Chromium releases and branches as s * No modifications are made to the source code or the output binaries. * The build process is open source using GitHub actions. * Dynamic framework (xcframework format) which contains multiple binaries for macOS and iOS. -* Since [Xcode 14](https://developer.apple.com/documentation/Xcode-Release-Notes/xcode-14-release-notes), bitcode is deprecated. Version M103 and above does not include bitcode. * Added support for extra encodings: VP9, H264, H265 (HEVC) +* dSYM files are included in case you need them. You can download them from the [releases page](https://github.com/stasel/WebRTC/releases). ## 📢 Requirements * iOS 12+ diff --git a/scripts/build.sh b/scripts/build.sh index 3e11a22a33..c917d86c21 100644 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -16,7 +16,7 @@ MAC_CATALYST="${MAC_CATALYST:-false}" ROOT_DIR="$(pwd)" OUTPUT_DIR="${ROOT_DIR}/out" XCFRAMEWORK_DIR="${OUTPUT_DIR}/WebRTC.xcframework" -COMMON_GN_ARGS="is_debug=${DEBUG} rtc_libvpx_build_vp9=true is_component_build=false rtc_include_tests=false rtc_enable_objc_symbol_export=true enable_stripping=true enable_dsyms=false use_lld=true rtc_ios_use_opengl_rendering=true rtc_system_openh264=true rtc_use_h265=true" +COMMON_GN_ARGS="is_debug=${DEBUG} rtc_libvpx_build_vp9=true is_component_build=false rtc_include_tests=false rtc_enable_objc_symbol_export=true enable_stripping=true enable_dsyms=true use_lld=true rtc_ios_use_opengl_rendering=true rtc_system_openh264=true rtc_use_h265=true" PLISTBUDDY_EXEC="/usr/libexec/PlistBuddy" @@ -102,7 +102,7 @@ cd .. gclient sync --with_branch_heads --with_tags || exit 1 # Step 2.5 - Temp patch for macOS arm64 builds -bash "${ROOT_DIR}/scripts/patches/disable_apple_linker.sh" "${ROOT_DIR}/src/build/toolchain/apple/toolchain.gni" || exit 1 +# bash "${ROOT_DIR}/scripts/patches/disable_apple_linker.sh" "${ROOT_DIR}/src/build/toolchain/apple/toolchain.gni" || exit 1 cd src @@ -133,7 +133,7 @@ fi INFO_PLIST="${XCFRAMEWORK_DIR}/Info.plist" rm -rf "${XCFRAMEWORK_DIR}" -mkdir "${XCFRAMEWORK_DIR}" +mkdir -p "${XCFRAMEWORK_DIR}" "$PLISTBUDDY_EXEC" -c "Add :CFBundlePackageType string XFWK" "${INFO_PLIST}" "$PLISTBUDDY_EXEC" -c "Add :XCFrameworkFormatVersion string 1.0" "${INFO_PLIST}" "$PLISTBUDDY_EXEC" -c "Add :AvailableLibraries array" "${INFO_PLIST}" @@ -145,15 +145,18 @@ if [[ "$IOS" = true ]]; then IOS_LIB_IDENTIFIER="ios-arm64" IOS_SIM_LIB_IDENTIFIER="ios-x86_64_arm64-simulator" - mkdir "${XCFRAMEWORK_DIR}/${IOS_LIB_IDENTIFIER}" - mkdir "${XCFRAMEWORK_DIR}/${IOS_SIM_LIB_IDENTIFIER}" + mkdir -p "${XCFRAMEWORK_DIR}/${IOS_LIB_IDENTIFIER}" + mkdir -p "${XCFRAMEWORK_DIR}/${IOS_SIM_LIB_IDENTIFIER}" LIB_IOS_INDEX=0 LIB_IOS_SIMULATOR_INDEX=1 plist_add_library $LIB_IOS_INDEX $IOS_LIB_IDENTIFIER "ios" plist_add_library $LIB_IOS_SIMULATOR_INDEX $IOS_SIM_LIB_IDENTIFIER "ios" "simulator" - cp -r "${OUTPUT_DIR}/ios-arm64-device/WebRTC.framework" "${XCFRAMEWORK_DIR}/${IOS_LIB_IDENTIFIER}" cp -r "${OUTPUT_DIR}/ios-x64-simulator/WebRTC.framework" "${XCFRAMEWORK_DIR}/${IOS_SIM_LIB_IDENTIFIER}" + cp -r "${OUTPUT_DIR}/ios-arm64-device/WebRTC.framework" "${XCFRAMEWORK_DIR}/${IOS_LIB_IDENTIFIER}" + cp -r ${OUTPUT_DIR}/ios-x64-simulator/WebRTC.dSYM "${OUTPUT_DIR}/WebRTC-ios-x86_64-simulator.dSYM" + cp -r ${OUTPUT_DIR}/ios-arm64-simulator/WebRTC.dSYM "${OUTPUT_DIR}/WebRTC-ios-arm64-simulator.dSYM" + cp -r ${OUTPUT_DIR}/ios-arm64-device/WebRTC.dSYM "${OUTPUT_DIR}/WebRTC-ios-arm64-device.dSYM" LIPO_IOS_FLAGS="${OUTPUT_DIR}/ios-arm64-device/WebRTC.framework/WebRTC" LIPO_IOS_SIM_FLAGS="${OUTPUT_DIR}/ios-x64-simulator/WebRTC.framework/WebRTC ${OUTPUT_DIR}/ios-arm64-simulator/WebRTC.framework/WebRTC" @@ -183,6 +186,7 @@ if [ "$MACOS" = true ]; then plist_add_architecture $LIB_COUNT "arm64" cp -RP "${OUTPUT_DIR}/macos-x64/WebRTC.framework" "${XCFRAMEWORK_DIR}/${MAC_LIB_IDENTIFIER}" + cp -r ${OUTPUT_DIR}/macos-x64/WebRTC.dSYM "${OUTPUT_DIR}/WebRTC-${MAC_LIB_IDENTIFIER}.dSYM" # The generated macOS framework bundle contains only the umbrella header: # since M141 the other public headers are left behind in the intermediate @@ -207,6 +211,8 @@ if [ "$MAC_CATALYST" = true ]; then plist_add_architecture $LIB_COUNT "arm64" cp -RP "${OUTPUT_DIR}/catalyst-x64/WebRTC.framework" "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}" + cp -r ${OUTPUT_DIR}/catalyst-x64/WebRTC.dSYM "${OUTPUT_DIR}/WebRTC-${CATALYST_LIB_IDENTIFIER}.dSYM" + fix_privacy_manifest "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}/WebRTC.framework" lipo -create -output "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}/WebRTC.framework/Versions/A/WebRTC" "${OUTPUT_DIR}/catalyst-x64/WebRTC.framework/WebRTC" "${OUTPUT_DIR}/catalyst-arm64/WebRTC.framework/WebRTC" LIB_COUNT=$((LIB_COUNT+1)) @@ -221,10 +227,13 @@ NOW=$(date -u +"%Y-%m-%dT%H-%M-%S") OUTPUT_NAME=WebRTC-$NOW.xcframework.zip zip --symlinks -r $OUTPUT_NAME WebRTC.xcframework/ -# Step 8 calculate SHA256 checksum +# Step 8 - archive the dSYM files +DSYM_OUTPUT_NAME=WebRTC-$NOW-dSYM.zip +zip -rm $DSYM_OUTPUT_NAME WebRTC-*.dSYM + +# Step 9 - calculate SHA256 checksum CHECKSUM=$(shasum -a 256 $OUTPUT_NAME | awk '{ print $1 }') COMMIT_HASH=$(git -C ${ROOT_DIR}/src rev-parse HEAD) -echo "{ \"file\": \"${OUTPUT_NAME}\", \"checksum\": \"${CHECKSUM}\", \"commit\": \"${COMMIT_HASH}\", \"branch\": \"${BRANCH}\" }" > metadata.json +echo "{ \"file\": \"${OUTPUT_NAME}\", \"checksum\": \"${CHECKSUM}\", \"commit\": \"${COMMIT_HASH}\", \"branch\": \"${BRANCH}\", \"dsym\": \"${DSYM_OUTPUT_NAME}\" }" > metadata.json cat metadata.json - diff --git a/scripts/patches/disable_apple_linker.sh b/scripts/patches/disable_apple_linker.sh deleted file mode 100755 index 07522b903a..0000000000 --- a/scripts/patches/disable_apple_linker.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -## Patch: keep the Chromium toolchain on LLVM's archiver/linker. -## -## M150 pins src/build to a revision where Chromium briefly defaulted macOS -## arm64 builds to Apple's linker and Apple's libtool for static archives -## (crbug.com/502338406). We still link with LLVM's ld64.lld (use_lld=true), -## which cannot read archives created by the rewritten libtool shipped with -## Xcode 26.5+ ("cctools_ld"): the build fails with "couldn't process child: -## __.SYMDEF has unhandled file type" and then the linker crashes. Appending -## "&& false" to the use_apple_linker formula keeps the toolchain using -## llvm-ar for static archives, matching the linker we use (same behavior as -## M149 and earlier). This assignment lives inside toolchain_args, which -## ignores gn args, so it has to be patched in the source. -## -## Upstream made the Apple linker opt-in again on 2026-06-03 (chromium build -## commit a461b6f9832d) and later removed use_apple_linker entirely, so this -## patch is a no-op once a milestone pins a newer src/build revision and can -## be deleted then. -## -## Usage: disable_apple_linker.sh - -set -e - -APPLE_TOOLCHAIN_GNI="$1" - -if [ -z "$APPLE_TOOLCHAIN_GNI" ]; then - echo "error: usage: $0 " >&2 - exit 1 -fi - -if [ ! -f "$APPLE_TOOLCHAIN_GNI" ]; then - echo "error: toolchain file not found: ${APPLE_TOOLCHAIN_GNI}" >&2 - exit 1 -fi - -sed -i '' 's/!(use_remoteexec && use_system_xcode)$/!(use_remoteexec \&\& use_system_xcode) \&\& false/' "$APPLE_TOOLCHAIN_GNI" - -# Guard: if the unpatched formula is still present but our patched form is -# absent, the sed pattern failed to apply (the formula likely changed -# upstream). A newer revision that dropped use_apple_linker leaves neither -# marker, so this correctly no-ops there. -if grep -q 'use_apple_linker =$' "$APPLE_TOOLCHAIN_GNI" && ! grep -q 'use_system_xcode) && false' "$APPLE_TOOLCHAIN_GNI"; then - echo "error: failed to patch use_apple_linker in ${APPLE_TOOLCHAIN_GNI}, the formula has likely changed upstream" >&2 - exit 1 -fi diff --git a/scripts/release.py b/scripts/release.py index 0bf35e6ae9..45b0319cd3 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -154,13 +154,21 @@ def createPullRequest(release, head): githubReleaseDraft = createReleaseDraft(nextRelease ,buildMetadata) # Upload asset to github - print("➡️ Uploading asset to github...") - assetName = f"WebRTC-M{nextRelease.version}.xcframework.zip" - assetPath = os.path.join(outputDir, buildMetadata.filename) + print("➡️ Uploading assets to github...") uploadURL = githubReleaseDraft['upload_url'] - uploadResult = uploadReleaseAsset(uploadURL, assetPath, assetName) - - if not uploadResult: + uploadResultFramework = uploadReleaseAsset( + uploadURL, + os.path.join(outputDir, buildMetadata.filename), + f"WebRTC-M{nextRelease.version}.xcframework.zip" + ) + + uploadResultdSYM = uploadReleaseAsset( + uploadURL, + os.path.join(outputDir, buildMetadata.dsym), + f"WebRTC-M{nextRelease.version}-dSYM.zip" + ) + + if not uploadResultFramework or not uploadResultdSYM: print("❌ Failed uploading asset to github") os._exit(os.EX_SOFTWARE) @@ -188,7 +196,7 @@ def createPullRequest(release, head): # Commit and push - print("➡️ Commiting and pushing code to remote...") + print("➡️ Committing and pushing code to remote...") os.system(f'git add Package.swift WebRTC-lib.podspec README.md WebRTC.json') os.system(f'git commit -m "Updated files for release M{nextRelease.version}"') os.system(f'git push origin {releaseBranch}') From e5f94ede14a8227974b1731fc5e4a2f30a638a53 Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Mon, 31 Aug 2026 11:43:51 +0200 Subject: [PATCH 60/74] Fixed an issue with metadata json parsing --- scripts/release.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/release.py b/scripts/release.py index 45b0319cd3..419161e6bb 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -75,7 +75,7 @@ def buildWebRTC(branch): def getBuildMetadata(outputDir): with open(f"{outputDir}/metadata.json", 'r') as f: jsonData = json.loads(f.read()) - return BuildMetadata(filename = jsonData['file'], checksum = jsonData['checksum'], commit = jsonData['commit'], branch = jsonData['branch']) + return BuildMetadata(filename = jsonData['file'], checksum = jsonData['checksum'], commit = jsonData['commit'], branch = jsonData['branch'], dsym = jsonData['dsym']) def createReleaseDraft(release, buildMetadata): body = f"Release notes: https://webrtc.googlesource.com/src.git/+log/refs/{buildMetadata.branch}/\n" From d141c31d13594f0387a73245dd15d1d7ac595acd Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Mon, 31 Aug 2026 13:56:19 +0200 Subject: [PATCH 61/74] Fix another issue with the release script and dsym upload --- scripts/release.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/release.py b/scripts/release.py index 419161e6bb..f1a3d12e10 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -19,6 +19,7 @@ class BuildMetadata: checksum: str commit: str branch: str + dsym: str def getStableMilestone(): """Find the current stable milestone from the Chromium Dashboard.""" From 1eadf893cd6101b187f9ff5210840bee9a6403d4 Mon Sep 17 00:00:00 2001 From: Stasel <2033301+stasel@users.noreply.github.com> Date: Mon, 31 Aug 2026 14:47:16 +0200 Subject: [PATCH 62/74] Update Package.swtich with the new M151 hash --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index eee04200ad..ec75fe82cb 100644 --- a/Package.swift +++ b/Package.swift @@ -14,7 +14,7 @@ let package = Package( .binaryTarget( name: "WebRTC", url: "https://github.com/stasel/WebRTC/releases/download/151.0.0/WebRTC-M151.xcframework.zip", - checksum: "64a218fad3d84a0d783321aa9a1eec58ca266ac7879123f86b0b44b703b7d8dc" + checksum: "6f3f5693383ce65763190c46ca9f2c4325c34b83681acb9db30f01488e15f1e0" ), ] ) From 852c1346003b622df34294c9bb56b2d091b048ca Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Mon, 31 Aug 2026 21:44:22 +0200 Subject: [PATCH 63/74] Added better dSYM extraction and fixed missing dSYMs --- scripts/build.sh | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index c917d86c21..ea2acd5198 100644 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -81,6 +81,27 @@ fix_privacy_manifest() { fi } +# Stage the dSYM for one XCFramework slice, named after its library identifier. +# Pass a second build directory when the slice's binary is lipo'd from two architectures. +stage_dsym() { + local identifier=$1 + local build_dir=$2 + local extra_build_dir=$3 + local dsym="${OUTPUT_DIR}/WebRTC-${identifier}.dSYM" + local dwarf="Contents/Resources/DWARF/WebRTC" + local relocations="Contents/Resources/Relocations" + + rm -rf "${dsym}" + cp -r "${OUTPUT_DIR}/${build_dir}/WebRTC.dSYM" "${dsym}" || exit 1 + + if [ ! -z "${extra_build_dir}" ]; then + cp -r "${OUTPUT_DIR}/${extra_build_dir}/WebRTC.dSYM/${relocations}/" "${dsym}/${relocations}/" + lipo -create -output "${dsym}/${dwarf}" \ + "${OUTPUT_DIR}/${build_dir}/WebRTC.dSYM/${dwarf}" \ + "${OUTPUT_DIR}/${extra_build_dir}/WebRTC.dSYM/${dwarf}" || exit 1 + fi +} + # Step 1: Download and install depot tools if [ ! -d depot_tools ]; then git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git @@ -154,9 +175,8 @@ if [[ "$IOS" = true ]]; then cp -r "${OUTPUT_DIR}/ios-x64-simulator/WebRTC.framework" "${XCFRAMEWORK_DIR}/${IOS_SIM_LIB_IDENTIFIER}" cp -r "${OUTPUT_DIR}/ios-arm64-device/WebRTC.framework" "${XCFRAMEWORK_DIR}/${IOS_LIB_IDENTIFIER}" - cp -r ${OUTPUT_DIR}/ios-x64-simulator/WebRTC.dSYM "${OUTPUT_DIR}/WebRTC-ios-x86_64-simulator.dSYM" - cp -r ${OUTPUT_DIR}/ios-arm64-simulator/WebRTC.dSYM "${OUTPUT_DIR}/WebRTC-ios-arm64-simulator.dSYM" - cp -r ${OUTPUT_DIR}/ios-arm64-device/WebRTC.dSYM "${OUTPUT_DIR}/WebRTC-ios-arm64-device.dSYM" + stage_dsym "${IOS_LIB_IDENTIFIER}" "ios-arm64-device" + stage_dsym "${IOS_SIM_LIB_IDENTIFIER}" "ios-x64-simulator" "ios-arm64-simulator" LIPO_IOS_FLAGS="${OUTPUT_DIR}/ios-arm64-device/WebRTC.framework/WebRTC" LIPO_IOS_SIM_FLAGS="${OUTPUT_DIR}/ios-x64-simulator/WebRTC.framework/WebRTC ${OUTPUT_DIR}/ios-arm64-simulator/WebRTC.framework/WebRTC" @@ -186,7 +206,7 @@ if [ "$MACOS" = true ]; then plist_add_architecture $LIB_COUNT "arm64" cp -RP "${OUTPUT_DIR}/macos-x64/WebRTC.framework" "${XCFRAMEWORK_DIR}/${MAC_LIB_IDENTIFIER}" - cp -r ${OUTPUT_DIR}/macos-x64/WebRTC.dSYM "${OUTPUT_DIR}/WebRTC-${MAC_LIB_IDENTIFIER}.dSYM" + stage_dsym "${MAC_LIB_IDENTIFIER}" "macos-x64" "macos-arm64" # The generated macOS framework bundle contains only the umbrella header: # since M141 the other public headers are left behind in the intermediate @@ -211,7 +231,7 @@ if [ "$MAC_CATALYST" = true ]; then plist_add_architecture $LIB_COUNT "arm64" cp -RP "${OUTPUT_DIR}/catalyst-x64/WebRTC.framework" "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}" - cp -r ${OUTPUT_DIR}/catalyst-x64/WebRTC.dSYM "${OUTPUT_DIR}/WebRTC-${CATALYST_LIB_IDENTIFIER}.dSYM" + stage_dsym "${CATALYST_LIB_IDENTIFIER}" "catalyst-x64" "catalyst-arm64" fix_privacy_manifest "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}/WebRTC.framework" lipo -create -output "${XCFRAMEWORK_DIR}/${CATALYST_LIB_IDENTIFIER}/WebRTC.framework/Versions/A/WebRTC" "${OUTPUT_DIR}/catalyst-x64/WebRTC.framework/WebRTC" "${OUTPUT_DIR}/catalyst-arm64/WebRTC.framework/WebRTC" @@ -225,11 +245,11 @@ cp LICENSE ${XCFRAMEWORK_DIR} cd "${OUTPUT_DIR}" NOW=$(date -u +"%Y-%m-%dT%H-%M-%S") OUTPUT_NAME=WebRTC-$NOW.xcframework.zip -zip --symlinks -r $OUTPUT_NAME WebRTC.xcframework/ +zip --symlinks -rq $OUTPUT_NAME WebRTC.xcframework/ # Step 8 - archive the dSYM files DSYM_OUTPUT_NAME=WebRTC-$NOW-dSYM.zip -zip -rm $DSYM_OUTPUT_NAME WebRTC-*.dSYM +zip -rmq $DSYM_OUTPUT_NAME WebRTC-*.dSYM # Step 9 - calculate SHA256 checksum CHECKSUM=$(shasum -a 256 $OUTPUT_NAME | awk '{ print $1 }') From 9e96ffe21567cc269af762c51fbcccc4654a2db1 Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Mon, 31 Aug 2026 21:53:35 +0200 Subject: [PATCH 64/74] Update readme to reflect the status of H265 libraries --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5d10f33ee9..d53f84fa04 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,9 @@ The binary releases correspond with official Chromium releases and branches as s * No modifications are made to the source code or the output binaries. * The build process is open source using GitHub actions. * Dynamic framework (xcframework format) which contains multiple binaries for macOS and iOS. -* Added support for extra encodings: VP9, H264, H265 (HEVC) -* dSYM files are included in case you need them. You can download them from the [releases page](https://github.com/stasel/WebRTC/releases). +* Added support for extra encodings: VP9, H264 and AV1. +* H.265 / HEVC: the SDP negotiation and RTP packetization layer is compiled but WebRTC ships no HEVC encoder or decoder for Apple platforms. +* dSYM files are included in case you need them. You can download them from the [releases page](https://github.com/stasel/WebRTC/releases). *(Available from version M152).* ## 📢 Requirements * iOS 12+ @@ -103,6 +104,6 @@ https://webrtc.googlesource.com/src/+/refs/heads/main/docs/native-code/ios/READM You can also take a look at the [build script](scripts/build.sh) I created for more details. -## 📃 License -* BSD 3-Clause License +## 📃 Licenses +* Build scripts (this repository): `BSD 3-Clause License` * WebRTC License: https://webrtc.org/support/license From 1d04692697cb642bfebf6ad2dd99fe52649c3d6d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2026 23:56:03 +0200 Subject: [PATCH 65/74] Updated files for release M152 (#163) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index ec75fe82cb..8623d36645 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/151.0.0/WebRTC-M151.xcframework.zip", - checksum: "6f3f5693383ce65763190c46ca9f2c4325c34b83681acb9db30f01488e15f1e0" + url: "https://github.com/stasel/WebRTC/releases/download/152.0.0/WebRTC-M152.xcframework.zip", + checksum: "115cb9944248a3302c0c8af17462e2576a28ccc7adef9f6a1fe66ee75d9e1cc8" ), ] ) diff --git a/README.md b/README.md index d53f84fa04..ec91c90b55 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("151.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("152.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index b56364e2d8..83fbb7bd57 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "151.0.0" + spec.version = "152.0.0" spec.summary = " A community-driven distribution of up to date WebRTC framework binaries for iOS and macOS." spec.description = <<-DESC This pod contains community-driven distribution of WebRTC framework binaries for iOS and macOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/151.0.0/WebRTC-M151.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/152.0.0/WebRTC-M152.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 8ba9f56c17..6e1e6127a0 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -45,6 +45,7 @@ "149.0.0": "https://github.com/stasel/WebRTC/releases/download/149.0.0/WebRTC-M149.xcframework.zip", "150.0.0": "https://github.com/stasel/WebRTC/releases/download/150.0.0/WebRTC-M150.xcframework.zip", "151.0.0": "https://github.com/stasel/WebRTC/releases/download/151.0.0/WebRTC-M151.xcframework.zip", + "152.0.0": "https://github.com/stasel/WebRTC/releases/download/152.0.0/WebRTC-M152.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From c192cf2b1f0eb706e30ed6dc913ee2f2e3f55869 Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Fri, 11 Sep 2026 10:13:27 +0200 Subject: [PATCH 66/74] Bootstrap depot_tools before running fetch to ensure that the correct version of depot_tools is used. This fixes failures in M153. --- scripts/build.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/build.sh b/scripts/build.sh index ea2acd5198..1e5a40eaef 100644 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -112,6 +112,9 @@ else fi export PATH=$(pwd)/depot_tools:$PATH +# Bootstrap depot_tools before running any of its tools. +ensure_bootstrap || exit 1 + # Step 2 - Download and build WebRTC if [ ! -d src ]; then fetch --nohooks webrtc_ios || exit 1 From 4266157cd08f92115de885ab12d87196a8db87e1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2026 21:11:46 +0200 Subject: [PATCH 67/74] Updated files for release M153 (#165) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 8623d36645..1841f2b63f 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/152.0.0/WebRTC-M152.xcframework.zip", - checksum: "115cb9944248a3302c0c8af17462e2576a28ccc7adef9f6a1fe66ee75d9e1cc8" + url: "https://github.com/stasel/WebRTC/releases/download/153.0.0/WebRTC-M153.xcframework.zip", + checksum: "3e3a8946f27510133e3feed04d05fa23505bbe366e977620503bfc7986c2b78f" ), ] ) diff --git a/README.md b/README.md index ec91c90b55..7ff42c90a0 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("152.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("153.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 83fbb7bd57..4a61dcf5e1 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "152.0.0" + spec.version = "153.0.0" spec.summary = " A community-driven distribution of up to date WebRTC framework binaries for iOS and macOS." spec.description = <<-DESC This pod contains community-driven distribution of WebRTC framework binaries for iOS and macOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/152.0.0/WebRTC-M152.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/153.0.0/WebRTC-M153.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 6e1e6127a0..0af94751c2 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -46,6 +46,7 @@ "150.0.0": "https://github.com/stasel/WebRTC/releases/download/150.0.0/WebRTC-M150.xcframework.zip", "151.0.0": "https://github.com/stasel/WebRTC/releases/download/151.0.0/WebRTC-M151.xcframework.zip", "152.0.0": "https://github.com/stasel/WebRTC/releases/download/152.0.0/WebRTC-M152.xcframework.zip", + "153.0.0": "https://github.com/stasel/WebRTC/releases/download/153.0.0/WebRTC-M153.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 0c0ad84dac6c1941c16a414dfcfba94691866e4c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 23:09:24 +0200 Subject: [PATCH 68/74] Updated files for release M154 (#167) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 1841f2b63f..3e73f2c182 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/153.0.0/WebRTC-M153.xcframework.zip", - checksum: "3e3a8946f27510133e3feed04d05fa23505bbe366e977620503bfc7986c2b78f" + url: "https://github.com/stasel/WebRTC/releases/download/154.0.0/WebRTC-M154.xcframework.zip", + checksum: "a2bcdda93578c82452ceb6e49d54a2746e1bcb4caf7c2fa601ffac8028b58c16" ), ] ) diff --git a/README.md b/README.md index 7ff42c90a0..71431bf2c5 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("153.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("154.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 4a61dcf5e1..8275fba11f 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "153.0.0" + spec.version = "154.0.0" spec.summary = " A community-driven distribution of up to date WebRTC framework binaries for iOS and macOS." spec.description = <<-DESC This pod contains community-driven distribution of WebRTC framework binaries for iOS and macOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '12.0' spec.osx.deployment_target = '10.11' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/153.0.0/WebRTC-M153.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/154.0.0/WebRTC-M154.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 0af94751c2..9418efe318 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -47,6 +47,7 @@ "151.0.0": "https://github.com/stasel/WebRTC/releases/download/151.0.0/WebRTC-M151.xcframework.zip", "152.0.0": "https://github.com/stasel/WebRTC/releases/download/152.0.0/WebRTC-M152.xcframework.zip", "153.0.0": "https://github.com/stasel/WebRTC/releases/download/153.0.0/WebRTC-M153.xcframework.zip", + "154.0.0": "https://github.com/stasel/WebRTC/releases/download/154.0.0/WebRTC-M154.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 979c8867b62eaae6bc5b799d838a71f5296af8b2 Mon Sep 17 00:00:00 2001 From: stasel <2033301+stasel@users.noreply.github.com> Date: Wed, 30 Sep 2026 23:25:17 +0200 Subject: [PATCH 69/74] Bumped minimum deployment target versions --- README.md | 4 ++-- WebRTC-lib.podspec | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 71431bf2c5..38ba25ffb1 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,8 @@ The binary releases correspond with official Chromium releases and branches as s * dSYM files are included in case you need them. You can download them from the [releases page](https://github.com/stasel/WebRTC/releases). *(Available from version M152).* ## 📢 Requirements -* iOS 12+ -* macOS 10.11+ +* iOS 15+ +* macOS 12+ * macOS Catalyst 11.0+ ## 📀 Binaries included diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index 8275fba11f..e0c7023650 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -11,8 +11,8 @@ Pod::Spec.new do |spec| spec.homepage = "https://github.com/stasel/WebRTC" spec.license = { :type => 'BSD', :file => 'WebRTC.xcframework/LICENSE' } spec.author = "Stasel" - spec.ios.deployment_target = '12.0' - spec.osx.deployment_target = '10.11' + spec.ios.deployment_target = '15.0' + spec.osx.deployment_target = '12.0' spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/154.0.0/WebRTC-M154.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" From 44f36788497f701bc8c0306de3a1c2511d56019d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 12 Oct 2026 08:21:31 +0200 Subject: [PATCH 70/74] Updated files for release M155 (#171) Co-authored-by: Anka --- Package.swift | 4 ++-- README.md | 2 +- WebRTC-lib.podspec | 4 ++-- WebRTC.json | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 3e73f2c182..606b192471 100644 --- a/Package.swift +++ b/Package.swift @@ -13,8 +13,8 @@ let package = Package( targets: [ .binaryTarget( name: "WebRTC", - url: "https://github.com/stasel/WebRTC/releases/download/154.0.0/WebRTC-M154.xcframework.zip", - checksum: "a2bcdda93578c82452ceb6e49d54a2746e1bcb4caf7c2fa601ffac8028b58c16" + url: "https://github.com/stasel/WebRTC/releases/download/155.0.0/WebRTC-M155.xcframework.zip", + checksum: "cb9adacf2d6bbf598d1d9e3e6c16d8fb97ca987b5b697746891828f9dc068ffe" ), ] ) diff --git a/README.md b/README.md index 38ba25ffb1..7582066211 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Xcode has a built-in support for Swift package manager. You can easily add the p Or, you can add the following dependency to your `Package.swift` file: ```swift dependencies: [ - .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("154.0.0")) + .package(url: "https://github.com/stasel/WebRTC.git", .upToNextMajor("155.0.0")) ] ``` diff --git a/WebRTC-lib.podspec b/WebRTC-lib.podspec index e0c7023650..558564c471 100644 --- a/WebRTC-lib.podspec +++ b/WebRTC-lib.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "WebRTC-lib" - spec.version = "154.0.0" + spec.version = "155.0.0" spec.summary = " A community-driven distribution of up to date WebRTC framework binaries for iOS and macOS." spec.description = <<-DESC This pod contains community-driven distribution of WebRTC framework binaries for iOS and macOS. @@ -14,7 +14,7 @@ Pod::Spec.new do |spec| spec.ios.deployment_target = '15.0' spec.osx.deployment_target = '12.0' - spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/154.0.0/WebRTC-M154.xcframework.zip" } + spec.source = { :http => "https://github.com/stasel/WebRTC/releases/download/155.0.0/WebRTC-M155.xcframework.zip" } spec.vendored_frameworks = "WebRTC.xcframework" end diff --git a/WebRTC.json b/WebRTC.json index 9418efe318..ffb4c1375d 100644 --- a/WebRTC.json +++ b/WebRTC.json @@ -48,6 +48,7 @@ "152.0.0": "https://github.com/stasel/WebRTC/releases/download/152.0.0/WebRTC-M152.xcframework.zip", "153.0.0": "https://github.com/stasel/WebRTC/releases/download/153.0.0/WebRTC-M153.xcframework.zip", "154.0.0": "https://github.com/stasel/WebRTC/releases/download/154.0.0/WebRTC-M154.xcframework.zip", + "155.0.0": "https://github.com/stasel/WebRTC/releases/download/155.0.0/WebRTC-M155.xcframework.zip", "88.0.0": "https://github.com/stasel/WebRTC/releases/download/88.0.0/WebRTC-M88.xcframework.zip", "89.0.0": "https://github.com/stasel/WebRTC/releases/download/89.0.0/WebRTC-M89.xcframework.zip", "90.0.0": "https://github.com/stasel/WebRTC/releases/download/90.0.0/WebRTC-M90.xcframework.zip", From 29ca1ae457188116e66a8188595b3b6c64d8198a Mon Sep 17 00:00:00 2001 From: sh Date: Wed, 21 Oct 2026 11:27:26 +0000 Subject: [PATCH 71/74] patches: port frame encryption to M156 --- ...1-Frame-encryption-in-non-native-API.patch | 480 +++++++++--------- 1 file changed, 229 insertions(+), 251 deletions(-) diff --git a/patches/0001-Frame-encryption-in-non-native-API.patch b/patches/0001-Frame-encryption-in-non-native-API.patch index a40316015f..e06d0b400e 100644 --- a/patches/0001-Frame-encryption-in-non-native-API.patch +++ b/patches/0001-Frame-encryption-in-non-native-API.patch @@ -1,68 +1,49 @@ -From dfe7805d74315177850ec46b5fe8e22b6a30bc39 Mon Sep 17 00:00:00 2001 -From: Stanislav Dmitrenko -Date: Tue, 28 Feb 2023 00:25:34 +0300 -Subject: [PATCH] Frame encryption in non-native API - ability to add encryptor - (to RTCRtpSender) and decryptor (to RTCRtpReceiver) from Swift/Objective-C - code - ---- - sdk/BUILD.gn | 10 ++ - .../RTCFrameDecryptor+Private.h | 50 +++++++++ - .../api/peerconnection/RTCFrameDecryptor.h | 45 ++++++++ - .../api/peerconnection/RTCFrameDecryptor.mm | 98 +++++++++++++++++ - .../RTCFrameEncryptor+Private.h | 51 +++++++++ - .../api/peerconnection/RTCFrameEncryptor.h | 45 ++++++++ - .../api/peerconnection/RTCFrameEncryptor.mm | 100 ++++++++++++++++++ - sdk/objc/api/peerconnection/RTCRtpReceiver.h | 2 + - sdk/objc/api/peerconnection/RTCRtpReceiver.mm | 9 ++ - sdk/objc/api/peerconnection/RTCRtpSender.h | 3 + - sdk/objc/api/peerconnection/RTCRtpSender.mm | 8 ++ - 11 files changed, 421 insertions(+) - create mode 100644 sdk/objc/api/peerconnection/RTCFrameDecryptor+Private.h - create mode 100644 sdk/objc/api/peerconnection/RTCFrameDecryptor.h - create mode 100644 sdk/objc/api/peerconnection/RTCFrameDecryptor.mm - create mode 100644 sdk/objc/api/peerconnection/RTCFrameEncryptor+Private.h - create mode 100644 sdk/objc/api/peerconnection/RTCFrameEncryptor.h - create mode 100644 sdk/objc/api/peerconnection/RTCFrameEncryptor.mm - diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn -index 971a323ef5..a9605a4533 100644 +index aeb65e1..9591156 100644 --- a/sdk/BUILD.gn +++ b/sdk/BUILD.gn -@@ -956,6 +956,12 @@ if (is_ios || is_mac) { +@@ -1000,6 +1000,12 @@ if (is_ios || is_mac) { "objc/api/peerconnection/RTCDtmfSender.mm", "objc/api/peerconnection/RTCFieldTrials.h", "objc/api/peerconnection/RTCFieldTrials.mm", -+ "objc/api/peerconnection/RTCFrameEncryptor+Private.h", -+ "objc/api/peerconnection/RTCFrameEncryptor.h", -+ "objc/api/peerconnection/RTCFrameEncryptor.mm", + "objc/api/peerconnection/RTCFrameDecryptor+Private.h", + "objc/api/peerconnection/RTCFrameDecryptor.h", + "objc/api/peerconnection/RTCFrameDecryptor.mm", ++ "objc/api/peerconnection/RTCFrameEncryptor+Private.h", ++ "objc/api/peerconnection/RTCFrameEncryptor.h", ++ "objc/api/peerconnection/RTCFrameEncryptor.mm", "objc/api/peerconnection/RTCIceCandidate+Private.h", "objc/api/peerconnection/RTCIceCandidate.h", "objc/api/peerconnection/RTCIceCandidate.mm", -@@ -1302,6 +1308,8 @@ if (is_ios || is_mac) { +@@ -1120,6 +1126,7 @@ if (is_ios || is_mac) { + "../api:field_trials_view", + "../api:jsep", + "../api:legacy_stats_types", ++ "../api:make_ref_counted", + "../api:media_stream_interface", + "../api:peer_connection_interface", + "../api:rtc_event_log_output_file", +@@ -1375,6 +1382,8 @@ if (is_ios || is_mac) { "objc/api/peerconnection/RTCDataChannel.h", "objc/api/peerconnection/RTCDataChannelConfiguration.h", "objc/api/peerconnection/RTCFieldTrials.h", -+ "objc/api/peerconnection/RTCFrameEncryptor.h", + "objc/api/peerconnection/RTCFrameDecryptor.h", ++ "objc/api/peerconnection/RTCFrameEncryptor.h", "objc/api/peerconnection/RTCIceCandidate.h", "objc/api/peerconnection/RTCIceCandidateErrorEvent.h", "objc/api/peerconnection/RTCIceServer.h", -@@ -1419,6 +1427,8 @@ if (is_ios || is_mac) { - "objc/api/peerconnection/RTCDataChannelConfiguration.h", +@@ -1495,6 +1504,8 @@ if (is_ios || is_mac) { + "objc/api/peerconnection/RTCDtlsFingerprint.h", "objc/api/peerconnection/RTCDtmfSender.h", "objc/api/peerconnection/RTCFieldTrials.h", -+ "objc/api/peerconnection/RTCFrameEncryptor.h", + "objc/api/peerconnection/RTCFrameDecryptor.h", ++ "objc/api/peerconnection/RTCFrameEncryptor.h", "objc/api/peerconnection/RTCIceCandidate.h", "objc/api/peerconnection/RTCIceCandidateErrorEvent.h", "objc/api/peerconnection/RTCIceServer.h", diff --git a/sdk/objc/api/peerconnection/RTCFrameDecryptor+Private.h b/sdk/objc/api/peerconnection/RTCFrameDecryptor+Private.h new file mode 100644 -index 0000000000..dd59d1722f +index 0000000..522401c --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameDecryptor+Private.h @@ -0,0 +1,50 @@ @@ -79,49 +60,49 @@ index 0000000000..dd59d1722f +#import "RTCFrameDecryptor.h" + +#include "api/crypto/frame_decryptor_interface.h" ++#include "api/scoped_refptr.h" + +NS_ASSUME_NONNULL_BEGIN + +namespace webrtc { + +class RTCFrameDecryptorAdapter : public FrameDecryptorInterface { -+ public: -+ RTCFrameDecryptorAdapter(RTC_OBJC_TYPE(RTCFrameDecryptor) * decryptor, size_t sizeChange); -+ Result Decrypt(cricket::MediaType media_type, -+ const std::vector& csrcs, -+ rtc::ArrayView additional_data, -+ rtc::ArrayView encrypted_frame, -+ rtc::ArrayView frame) override; -+ -+ size_t GetMaxPlaintextByteSize(cricket::MediaType media_type, -+ size_t encrypted_frame_size) override; -+ -+ void AddRef() const override {} -+ rtc::RefCountReleaseStatus Release() const override { -+ return rtc::RefCountReleaseStatus::kDroppedLastRef; -+ } -+ -+ private: -+ __weak RTC_OBJC_TYPE(RTCFrameDecryptor) * decryptor_; -+ size_t sizeChange_; -+ }; ++ public: ++ RTCFrameDecryptorAdapter(RTC_OBJC_TYPE(RTCFrameDecryptor) * decryptor, ++ int size_change); ++ ++ Result Decrypt(MediaType media_type, ++ const std::vector& csrcs, ++ std::span additional_data, ++ std::span encrypted_frame, ++ std::span frame) override; ++ ++ size_t GetMaxPlaintextByteSize(MediaType media_type, ++ size_t encrypted_frame_size) override; ++ ++ private: ++ __weak RTC_OBJC_TYPE(RTCFrameDecryptor) * decryptor_; ++ const int size_change_; ++}; + +} // namespace webrtc + +@interface RTC_OBJC_TYPE (RTCFrameDecryptor) +() + -+@property(nonatomic, readonly) rtc::scoped_refptr nativeFrameDecryptor; ++ @property(nonatomic, readonly) ++ webrtc::scoped_refptr ++ nativeFrameDecryptor; + +@end + +NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCFrameDecryptor.h b/sdk/objc/api/peerconnection/RTCFrameDecryptor.h new file mode 100644 -index 0000000000..3cb28fba79 +index 0000000..6b6b1b8 --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameDecryptor.h -@@ -0,0 +1,45 @@ +@@ -0,0 +1,50 @@ +/* + * Copyright 2023 The WebRTC project authors. All Rights Reserved. + * @@ -133,7 +114,8 @@ index 0000000000..3cb28fba79 + */ + +#import -+#import "RTCMacros.h" ++ ++#import "sdk/objc/base/RTCMacros.h" + +typedef NS_ENUM(NSInteger, RTCRtpMediaType); + @@ -145,34 +127,38 @@ index 0000000000..3cb28fba79 +@protocol RTC_OBJC_TYPE +(RTCFrameDecryptorDelegate) + -+/** Receives decryption events, should answer with decrypted data per frame */ -+- (nullable NSData *)frameDecryptor: (RTC_OBJC_TYPE (RTCFrameDecryptor) *)decryptor mediaType: (RTCRtpMediaType)mediaType withFrame: (NSData *)encrypted; ++ /** Returns the decrypted frame, or nil to drop it. */ ++ - (nullable NSData *)frameDecryptor ++ : (RTC_OBJC_TYPE(RTCFrameDecryptor) *)decryptor mediaType ++ : (RTCRtpMediaType)mediaType withFrame : (NSData *)encrypted; + +@end + -+ +RTC_OBJC_EXPORT +@protocol RTC_OBJC_TYPE +(RTCFrameDecryptor) + -+@property(nonatomic, weak) id delegate; ++ @property(nonatomic, weak) id ++ delegate; + +@end + +RTC_OBJC_EXPORT +@interface RTC_OBJC_TYPE (RTCFrameDecryptor) : NSObject ++ +/** Size change of frame after decryption (in bytes). Can be negative */ -+- (instancetype)initWithSizeChange: (int) sizeChange NS_DESIGNATED_INITIALIZER; ++- (instancetype)initWithSizeChange:(int)sizeChange NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; ++ +@end + +NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCFrameDecryptor.mm b/sdk/objc/api/peerconnection/RTCFrameDecryptor.mm new file mode 100644 -index 0000000000..a039a29094 +index 0000000..02dcdae --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameDecryptor.mm -@@ -0,0 +1,98 @@ +@@ -0,0 +1,105 @@ +/* + * Copyright 2023 The WebRTC project authors. All Rights Reserved. + * @@ -183,65 +169,66 @@ index 0000000000..a039a29094 + * be found in the AUTHORS file in the root of the source tree. + */ + -+#import +#import "RTCFrameDecryptor+Private.h" ++ ++#import "RTCRtpReceiver+Private.h" +#import "base/RTCLogging.h" + ++#include ++#include ++ ++#include "api/make_ref_counted.h" +#include "rtc_base/checks.h" -+#include "api/crypto/frame_decryptor_interface.h" -+#include "RTCRtpReceiver+Private.h" + +namespace webrtc { -+RTCFrameDecryptorAdapter::RTCFrameDecryptorAdapter(RTC_OBJC_TYPE(RTCFrameDecryptor) * decryptor, size_t sizeChange) { ++ ++RTCFrameDecryptorAdapter::RTCFrameDecryptorAdapter( ++ RTC_OBJC_TYPE(RTCFrameDecryptor) * decryptor, int size_change) ++ : decryptor_(decryptor), size_change_(size_change) { + RTC_CHECK(decryptor); -+ decryptor_ = decryptor; -+ sizeChange_ = sizeChange; +} + +RTCFrameDecryptorAdapter::Result RTCFrameDecryptorAdapter::Decrypt( -+ cricket::MediaType media_type, -+ const std::vector& csrcs, -+ rtc::ArrayView additional_data, -+ rtc::ArrayView encrypted_frame, -+ rtc::ArrayView frame) { ++ MediaType media_type, ++ const std::vector &csrcs, ++ std::span additional_data, ++ std::span encrypted_frame, ++ std::span frame) { + RTC_OBJC_TYPE(RTCFrameDecryptor) *decryptor = decryptor_; -+ NSData *encrypted = [NSData dataWithBytes: encrypted_frame.data() length: encrypted_frame.size()]; -+ NSData *decrypted = [decryptor.delegate frameDecryptor:decryptor mediaType:[RTC_OBJC_TYPE(RTCRtpReceiver) mediaTypeForNativeMediaType: media_type] withFrame:encrypted]; -+ if (decrypted) { -+ const char * decryptedBytes = (const char *)[decrypted bytes]; -+ NSUInteger size = [decrypted length]; -+ for (size_t i = 0; i < size; i++) { -+ frame[i] = decryptedBytes[i]; -+ } -+ return Result(Status::kOk, size); -+ } else { ++ NSData *encrypted = [NSData dataWithBytes:encrypted_frame.data() ++ length:encrypted_frame.size()]; ++ NSData *decrypted = [decryptor.delegate ++ frameDecryptor:decryptor ++ mediaType:[RTC_OBJC_TYPE(RTCRtpReceiver) ++ mediaTypeForNativeMediaType:media_type] ++ withFrame:encrypted]; ++ if (decrypted == nil || decrypted.length > frame.size()) { + return Result(Status::kFailedToDecrypt, 0); + } -+ ++ std::memcpy(frame.data(), decrypted.bytes, decrypted.length); ++ return Result(Status::kOk, decrypted.length); +} + +size_t RTCFrameDecryptorAdapter::GetMaxPlaintextByteSize( -+ cricket::MediaType media_type, -+ size_t encrypted_frame_size) { -+ return encrypted_frame_size + sizeChange_; ++ MediaType media_type, size_t encrypted_frame_size) { ++ if (size_change_ < 0) { ++ return encrypted_frame_size - ++ std::min(encrypted_frame_size, static_cast(-size_change_)); ++ } ++ return encrypted_frame_size + static_cast(size_change_); +} -+} // namespace webrtc + ++} // namespace webrtc + +@implementation RTC_OBJC_TYPE (RTCFrameDecryptor) { -+ rtc::scoped_refptr _nativeFrameDecryptor; ++ webrtc::scoped_refptr _nativeFrameDecryptor; +} + +@synthesize delegate = _delegate; +@synthesize nativeFrameDecryptor = _nativeFrameDecryptor; + +- (NSString *)description { -+ return [NSString -+ stringWithFormat:@"RTC_OBJC_TYPE(RTCFrameDecryptor)"]; -+} -+ -+- (void)dealloc { -+ _nativeFrameDecryptor = nullptr; ++ return [NSString stringWithFormat:@"RTC_OBJC_TYPE(RTCFrameDecryptor)"]; +} + +- (BOOL)isEqual:(id)object { @@ -254,7 +241,8 @@ index 0000000000..a039a29094 + if (![object isMemberOfClass:[self class]]) { + return NO; + } -+ RTC_OBJC_TYPE(RTCFrameDecryptor) *decryptor = (RTC_OBJC_TYPE(RTCFrameDecryptor) *)object; ++ RTC_OBJC_TYPE(RTCFrameDecryptor) *decryptor = ++ (RTC_OBJC_TYPE(RTCFrameDecryptor) *)object; + return _nativeFrameDecryptor == decryptor.nativeFrameDecryptor; +} + @@ -263,9 +251,14 @@ index 0000000000..a039a29094 +} + +- (instancetype)initWithSizeChange:(int)sizeChange { -+ if (self = [super init]) { -+ RTCLogInfo(@"RTC_OBJC_TYPE(RTCFrameDecryptor)(%p): created decryptor: %@", self, self.description); -+ _nativeFrameDecryptor = new webrtc::RTCFrameDecryptorAdapter(self, sizeChange); ++ self = [super init]; ++ if (self) { ++ RTCLogInfo(@"RTC_OBJC_TYPE(RTCFrameDecryptor)(%p): created decryptor: %@", ++ self, ++ self.description); ++ _nativeFrameDecryptor = ++ webrtc::make_ref_counted(self, ++ sizeChange); + } + return self; +} @@ -273,7 +266,7 @@ index 0000000000..a039a29094 +@end diff --git a/sdk/objc/api/peerconnection/RTCFrameEncryptor+Private.h b/sdk/objc/api/peerconnection/RTCFrameEncryptor+Private.h new file mode 100644 -index 0000000000..821761e5fa +index 0000000..b72c223 --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameEncryptor+Private.h @@ -0,0 +1,51 @@ @@ -290,50 +283,50 @@ index 0000000000..821761e5fa +#import "RTCFrameEncryptor.h" + +#include "api/crypto/frame_encryptor_interface.h" ++#include "api/scoped_refptr.h" + +NS_ASSUME_NONNULL_BEGIN + +namespace webrtc { + +class RTCFrameEncryptorAdapter : public FrameEncryptorInterface { -+ public: -+ RTCFrameEncryptorAdapter(RTC_OBJC_TYPE(RTCFrameEncryptor) * encryptor, size_t sizeChange); -+ int Encrypt(cricket::MediaType media_type, -+ uint32_t ssrc, -+ rtc::ArrayView additional_data, -+ rtc::ArrayView frame, -+ rtc::ArrayView encrypted_frame, -+ size_t* bytes_written) override; -+ -+ size_t GetMaxCiphertextByteSize(cricket::MediaType media_type, -+ size_t frame_size) override; -+ -+ void AddRef() const override {} -+ rtc::RefCountReleaseStatus Release() const override { -+ return rtc::RefCountReleaseStatus::kDroppedLastRef; -+ } -+ -+ private: -+ __weak RTC_OBJC_TYPE(RTCFrameEncryptor) * encryptor_; -+ size_t sizeChange_; -+ }; ++ public: ++ RTCFrameEncryptorAdapter(RTC_OBJC_TYPE(RTCFrameEncryptor) * encryptor, ++ int size_change); ++ ++ int Encrypt(MediaType media_type, ++ uint32_t ssrc, ++ std::span additional_data, ++ std::span frame, ++ std::span encrypted_frame, ++ size_t* bytes_written) override; ++ ++ size_t GetMaxCiphertextByteSize(MediaType media_type, ++ size_t frame_size) override; ++ ++ private: ++ __weak RTC_OBJC_TYPE(RTCFrameEncryptor) * encryptor_; ++ const int size_change_; ++}; + +} // namespace webrtc + +@interface RTC_OBJC_TYPE (RTCFrameEncryptor) +() + -+@property(nonatomic, readonly) rtc::scoped_refptr nativeFrameEncryptor; ++ @property(nonatomic, readonly) ++ webrtc::scoped_refptr ++ nativeFrameEncryptor; + +@end + +NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCFrameEncryptor.h b/sdk/objc/api/peerconnection/RTCFrameEncryptor.h new file mode 100644 -index 0000000000..445649410f +index 0000000..b879e66 --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameEncryptor.h -@@ -0,0 +1,45 @@ +@@ -0,0 +1,50 @@ +/* + * Copyright 2023 The WebRTC project authors. All Rights Reserved. + * @@ -345,7 +338,8 @@ index 0000000000..445649410f + */ + +#import -+#import "RTCMacros.h" ++ ++#import "sdk/objc/base/RTCMacros.h" + +typedef NS_ENUM(NSInteger, RTCRtpMediaType); + @@ -357,34 +351,38 @@ index 0000000000..445649410f +@protocol RTC_OBJC_TYPE +(RTCFrameEncryptorDelegate) + -+/** Receives encryption events, should answer with encrypted data per frame */ -+- (nullable NSData *)frameEncryptor: (RTC_OBJC_TYPE (RTCFrameEncryptor) *)encryptor mediaType: (RTCRtpMediaType)mediaType withFrame: (NSData *)unencrypted; ++ /** Returns the encrypted frame, or nil to drop it. */ ++ - (nullable NSData *)frameEncryptor ++ : (RTC_OBJC_TYPE(RTCFrameEncryptor) *)encryptor mediaType ++ : (RTCRtpMediaType)mediaType withFrame : (NSData *)unencrypted; + +@end + -+ +RTC_OBJC_EXPORT +@protocol RTC_OBJC_TYPE +(RTCFrameEncryptor) + -+@property(nonatomic, weak) id delegate; ++ @property(nonatomic, weak) id ++ delegate; + +@end + +RTC_OBJC_EXPORT +@interface RTC_OBJC_TYPE (RTCFrameEncryptor) : NSObject ++ +/** Size change of frame after encryption (in bytes). Can be negative */ -+- (instancetype)initWithSizeChange: (int) sizeChange NS_DESIGNATED_INITIALIZER; ++- (instancetype)initWithSizeChange:(int)sizeChange NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; ++ +@end + +NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCFrameEncryptor.mm b/sdk/objc/api/peerconnection/RTCFrameEncryptor.mm new file mode 100644 -index 0000000000..5242859dc1 +index 0000000..472f16e --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameEncryptor.mm -@@ -0,0 +1,100 @@ +@@ -0,0 +1,105 @@ +/* + * Copyright 2023 The WebRTC project authors. All Rights Reserved. + * @@ -395,67 +393,66 @@ index 0000000000..5242859dc1 + * be found in the AUTHORS file in the root of the source tree. + */ + -+#import +#import "RTCFrameEncryptor+Private.h" ++ ++#import "RTCRtpReceiver+Private.h" +#import "base/RTCLogging.h" + ++#include ++#include ++ ++#include "api/make_ref_counted.h" +#include "rtc_base/checks.h" -+#include "api/crypto/frame_encryptor_interface.h" -+#include "RTCRtpReceiver+Private.h" + +namespace webrtc { -+RTCFrameEncryptorAdapter::RTCFrameEncryptorAdapter(RTC_OBJC_TYPE(RTCFrameEncryptor) * encryptor, size_t sizeChange) { ++ ++RTCFrameEncryptorAdapter::RTCFrameEncryptorAdapter( ++ RTC_OBJC_TYPE(RTCFrameEncryptor) * encryptor, int size_change) ++ : encryptor_(encryptor), size_change_(size_change) { + RTC_CHECK(encryptor); -+ encryptor_ = encryptor; -+ sizeChange_ = sizeChange; +} + -+int RTCFrameEncryptorAdapter::Encrypt( -+ cricket::MediaType media_type, -+ uint32_t ssrc, -+ rtc::ArrayView additional_data, -+ rtc::ArrayView frame, -+ rtc::ArrayView encrypted_frame, -+ size_t* bytes_written) { ++int RTCFrameEncryptorAdapter::Encrypt(MediaType media_type, ++ uint32_t ssrc, ++ std::span additional_data, ++ std::span frame, ++ std::span encrypted_frame, ++ size_t *bytes_written) { + RTC_OBJC_TYPE(RTCFrameEncryptor) *encryptor = encryptor_; -+ NSData *unencrypted = [NSData dataWithBytes: frame.data() length: frame.size()]; -+ NSData *encrypted = [encryptor.delegate frameEncryptor:encryptor mediaType:[RTC_OBJC_TYPE(RTCRtpReceiver) mediaTypeForNativeMediaType: media_type] withFrame:unencrypted]; -+ if (encrypted) { -+ const char *encryptedBytes = (const char *)[encrypted bytes]; -+ NSUInteger size = [encrypted length]; -+ for (size_t i = 0; i < size; i++) { -+ encrypted_frame[i] = encryptedBytes[i]; -+ } -+ *bytes_written = size; -+ return 0; -+ } else { ++ NSData *unencrypted = [NSData dataWithBytes:frame.data() length:frame.size()]; ++ NSData *encrypted = [encryptor.delegate ++ frameEncryptor:encryptor ++ mediaType:[RTC_OBJC_TYPE(RTCRtpReceiver) ++ mediaTypeForNativeMediaType:media_type] ++ withFrame:unencrypted]; ++ if (encrypted == nil || encrypted.length > encrypted_frame.size()) { + return 1; + } -+ ++ std::memcpy(encrypted_frame.data(), encrypted.bytes, encrypted.length); ++ *bytes_written = encrypted.length; ++ return 0; +} + -+size_t RTCFrameEncryptorAdapter::GetMaxCiphertextByteSize( -+ cricket::MediaType media_type, -+ size_t frame_size) { -+ return frame_size + sizeChange_; ++size_t RTCFrameEncryptorAdapter::GetMaxCiphertextByteSize(MediaType media_type, ++ size_t frame_size) { ++ if (size_change_ < 0) { ++ return frame_size - ++ std::min(frame_size, static_cast(-size_change_)); ++ } ++ return frame_size + static_cast(size_change_); +} -+} // namespace webrtc + ++} // namespace webrtc + +@implementation RTC_OBJC_TYPE (RTCFrameEncryptor) { -+ rtc::scoped_refptr _nativeFrameEncryptor; ++ webrtc::scoped_refptr _nativeFrameEncryptor; +} + +@synthesize delegate = _delegate; +@synthesize nativeFrameEncryptor = _nativeFrameEncryptor; + +- (NSString *)description { -+ return [NSString -+ stringWithFormat:@"RTC_OBJC_TYPE(RTCFrameEncryptor)"]; -+} -+ -+- (void)dealloc { -+ _nativeFrameEncryptor = nullptr; ++ return [NSString stringWithFormat:@"RTC_OBJC_TYPE(RTCFrameEncryptor)"]; +} + +- (BOOL)isEqual:(id)object { @@ -468,7 +465,8 @@ index 0000000000..5242859dc1 + if (![object isMemberOfClass:[self class]]) { + return NO; + } -+ RTC_OBJC_TYPE(RTCFrameEncryptor) *encryptor = (RTC_OBJC_TYPE(RTCFrameEncryptor) *)object; ++ RTC_OBJC_TYPE(RTCFrameEncryptor) *encryptor = ++ (RTC_OBJC_TYPE(RTCFrameEncryptor) *)object; + return _nativeFrameEncryptor == encryptor.nativeFrameEncryptor; +} + @@ -477,126 +475,106 @@ index 0000000000..5242859dc1 +} + +- (instancetype)initWithSizeChange:(int)sizeChange { -+ if (self = [super init]) { -+ RTCLogInfo(@"RTC_OBJC_TYPE(RTCFrameEncryptor)(%p): created encryptor: %@", self, self.description); -+ _nativeFrameEncryptor = new webrtc::RTCFrameEncryptorAdapter(self, sizeChange); ++ self = [super init]; ++ if (self) { ++ RTCLogInfo(@"RTC_OBJC_TYPE(RTCFrameEncryptor)(%p): created encryptor: %@", ++ self, ++ self.description); ++ _nativeFrameEncryptor = ++ webrtc::make_ref_counted(self, ++ sizeChange); + } + return self; +} + +@end diff --git a/sdk/objc/api/peerconnection/RTCRtpReceiver.h b/sdk/objc/api/peerconnection/RTCRtpReceiver.h -index 1e407fd71b..8adfeae017 100644 +index e2ae27b..0918fba 100644 --- a/sdk/objc/api/peerconnection/RTCRtpReceiver.h +++ b/sdk/objc/api/peerconnection/RTCRtpReceiver.h -@@ -13,6 +13,7 @@ - #import "RTCMacros.h" - #import "RTCMediaStreamTrack.h" - #import "RTCRtpParameters.h" -+#import "RTCFrameDecryptor.h" +@@ -10,6 +10,7 @@ - NS_ASSUME_NONNULL_BEGIN + #import -@@ -74,6 +75,7 @@ RTC_OBJC_EXPORT ++#import "RTCFrameDecryptor.h" + #import "RTCMediaStreamTrack.h" + #import "RTCRtpParameters.h" + #import "sdk/objc/base/RTCMacros.h" +@@ -93,6 +94,8 @@ the current RTCRtpReceiver in the last ten seconds. /** The delegate for this RtpReceiver. */ @property(nonatomic, weak) id delegate; -+- (void)setRtcFrameDecryptor : (RTC_OBJC_TYPE(RTCFrameDecryptor) *)frameDecryptor; ++- (void)setRtcFrameDecryptor:(RTC_OBJC_TYPE(RTCFrameDecryptor) *)frameDecryptor; ++ @end RTC_OBJC_EXPORT diff --git a/sdk/objc/api/peerconnection/RTCRtpReceiver.mm b/sdk/objc/api/peerconnection/RTCRtpReceiver.mm -index 60af86ac1b..6af0563576 100644 +index 19bae4b..50d379d 100644 --- a/sdk/objc/api/peerconnection/RTCRtpReceiver.mm +++ b/sdk/objc/api/peerconnection/RTCRtpReceiver.mm -@@ -15,8 +15,10 @@ - #import "RTCRtpReceiver+Native.h" - #import "base/RTCLogging.h" - #import "helpers/NSString+StdString.h" -+#import "RTCFrameDecryptor+Private.h" +@@ -10,6 +10,7 @@ - #include "api/media_stream_interface.h" -+#include "api/crypto/frame_decryptor_interface.h" - - namespace webrtc { - -@@ -39,6 +41,7 @@ @implementation RTC_OBJC_TYPE (RTCRtpReceiver) { - RTC_OBJC_TYPE(RTCPeerConnectionFactory) * _factory; - rtc::scoped_refptr _nativeRtpReceiver; - std::unique_ptr _observer; -+ rtc::scoped_refptr _nativeFrameDecryptor; - } - - @synthesize delegate = _delegate; -@@ -70,6 +73,7 @@ - (NSString *)description { - - (void)dealloc { - if (_nativeRtpReceiver) { - _nativeRtpReceiver->SetObserver(nullptr); -+ _nativeFrameDecryptor = nullptr; - } - } + #import "RTCRtpReceiver+Private.h" -@@ -91,6 +95,11 @@ - (NSUInteger)hash { ++#import "RTCFrameDecryptor+Private.h" + #import "RTCMediaStreamTrack+Private.h" + #import "RTCRtpParameters+Private.h" + #import "RTCRtpReceiver+Native.h" +@@ -124,6 +125,11 @@ void RtpReceiverDelegateAdapter::OnFirstPacketReceivedAfterReceptiveChange( return (NSUInteger)_nativeRtpReceiver.get(); } -+- (void)setRtcFrameDecryptor:(RTC_OBJC_TYPE(RTCFrameDecryptor) *)frameDecryptor { -+ _nativeFrameDecryptor = frameDecryptor.nativeFrameDecryptor; -+ _nativeRtpReceiver->SetFrameDecryptor(_nativeFrameDecryptor); ++- (void)setRtcFrameDecryptor: ++ (RTC_OBJC_TYPE(RTCFrameDecryptor) *)frameDecryptor { ++ [self setFrameDecryptor:frameDecryptor.nativeFrameDecryptor]; +} + #pragma mark - Native - - (void)setFrameDecryptor:(rtc::scoped_refptr)frameDecryptor { + - (void)setFrameDecryptor: diff --git a/sdk/objc/api/peerconnection/RTCRtpSender.h b/sdk/objc/api/peerconnection/RTCRtpSender.h -index fcdf199869..e365890716 100644 +index 3609b67..fd7a498 100644 --- a/sdk/objc/api/peerconnection/RTCRtpSender.h +++ b/sdk/objc/api/peerconnection/RTCRtpSender.h -@@ -14,6 +14,7 @@ - #import "RTCMacros.h" +@@ -11,6 +11,7 @@ + #import + + #import "RTCDtmfSender.h" ++#import "RTCFrameEncryptor.h" #import "RTCMediaStreamTrack.h" #import "RTCRtpParameters.h" -+#import "RTCFrameEncryptor.h" - - NS_ASSUME_NONNULL_BEGIN - -@@ -42,6 +43,8 @@ RTC_OBJC_EXPORT - /** The RTCDtmfSender accociated with the RTP sender. */ - @property(nonatomic, readonly, nullable) id dtmfSender; + #import "sdk/objc/base/RTCMacros.h" +@@ -43,6 +44,8 @@ RTC_OBJC_EXPORT + @property(nonatomic, readonly, nullable) id + dtmfSender; -+-(void)setRtcFrameEncryptor : (RTC_OBJC_TYPE(RTCFrameEncryptor) *)frameEncryptor; ++- (void)setRtcFrameEncryptor:(RTC_OBJC_TYPE(RTCFrameEncryptor) *)frameEncryptor; + @end RTC_OBJC_EXPORT diff --git a/sdk/objc/api/peerconnection/RTCRtpSender.mm b/sdk/objc/api/peerconnection/RTCRtpSender.mm -index 4fadb30f49..622cb18867 100644 +index f3135c6..b8a2547 100644 --- a/sdk/objc/api/peerconnection/RTCRtpSender.mm +++ b/sdk/objc/api/peerconnection/RTCRtpSender.mm -@@ -16,8 +16,10 @@ - #import "RTCRtpSender+Native.h" - #import "base/RTCLogging.h" - #import "helpers/NSString+StdString.h" -+#import "RTCFrameEncryptor+Private.h" +@@ -11,6 +11,7 @@ + #import "RTCRtpSender+Private.h" - #include "api/media_stream_interface.h" -+#include "api/crypto/frame_encryptor_interface.h" - - @implementation RTC_OBJC_TYPE (RTCRtpSender) { - RTC_OBJC_TYPE(RTCPeerConnectionFactory) * _factory; -@@ -97,6 +99,12 @@ - (NSUInteger)hash { + #import "RTCDtmfSender+Private.h" ++#import "RTCFrameEncryptor+Private.h" + #import "RTCMediaStreamTrack+Private.h" + #import "RTCRtpParameters+Private.h" + #import "RTCRtpSender+Native.h" +@@ -105,6 +106,11 @@ return (NSUInteger)_nativeRtpSender.get(); } -+- (void)setRtcFrameEncryptor:(RTC_OBJC_TYPE(RTCFrameEncryptor) *)frameEncryptor { -+ rtc::scoped_refptr -+ _nativeFrameEncryptor = frameEncryptor.nativeFrameEncryptor; -+ _nativeRtpSender->SetFrameEncryptor(_nativeFrameEncryptor); ++- (void)setRtcFrameEncryptor: ++ (RTC_OBJC_TYPE(RTCFrameEncryptor) *)frameEncryptor { ++ [self setFrameEncryptor:frameEncryptor.nativeFrameEncryptor]; +} + #pragma mark - Native - - (void)setFrameEncryptor:(rtc::scoped_refptr)frameEncryptor { --- -2.37.1 (Apple Git-137.1) - + - (void)setFrameEncryptor: From e42db26e911bb076eb1fdc3452524b7259726b1e Mon Sep 17 00:00:00 2001 From: sh Date: Wed, 21 Oct 2026 11:27:52 +0000 Subject: [PATCH 72/74] ci: build with Xcode 26.6 for M156 --- .github/workflows/webrtc-build.yml | 2 +- .github/workflows/webrtc-release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/webrtc-build.yml b/.github/workflows/webrtc-build.yml index 4e5a866fcf..97daca85c7 100644 --- a/.github/workflows/webrtc-build.yml +++ b/.github/workflows/webrtc-build.yml @@ -2,7 +2,7 @@ name: WebRTC Manual Build run-name: WebRTC Manual Build env: - XCODE_VERSION: 26.5 + XCODE_VERSION: 26.6 on: workflow_dispatch: diff --git a/.github/workflows/webrtc-release.yml b/.github/workflows/webrtc-release.yml index 81f9a48202..743e22afe9 100644 --- a/.github/workflows/webrtc-release.yml +++ b/.github/workflows/webrtc-release.yml @@ -2,7 +2,7 @@ name: WebRTC Release run-name: WebRTC Release env: - XCODE_VERSION: 26.5 + XCODE_VERSION: 26.6 on: workflow_dispatch: From aab685f55f2eccaeab1d43d4249e8e1f168d45bc Mon Sep 17 00:00:00 2001 From: sh Date: Wed, 21 Oct 2026 11:50:34 +0000 Subject: [PATCH 73/74] patches: zero-copy frames, error code and tests --- ...1-Frame-encryption-in-non-native-API.patch | 419 ++++++++++++++++-- 1 file changed, 378 insertions(+), 41 deletions(-) diff --git a/patches/0001-Frame-encryption-in-non-native-API.patch b/patches/0001-Frame-encryption-in-non-native-API.patch index e06d0b400e..634a548416 100644 --- a/patches/0001-Frame-encryption-in-non-native-API.patch +++ b/patches/0001-Frame-encryption-in-non-native-API.patch @@ -1,5 +1,5 @@ diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn -index aeb65e1..9591156 100644 +index aeb65e1..5e51ce7 100644 --- a/sdk/BUILD.gn +++ b/sdk/BUILD.gn @@ -1000,6 +1000,12 @@ if (is_ios || is_mac) { @@ -23,7 +23,15 @@ index aeb65e1..9591156 100644 "../api:media_stream_interface", "../api:peer_connection_interface", "../api:rtc_event_log_output_file", -@@ -1375,6 +1382,8 @@ if (is_ios || is_mac) { +@@ -1197,6 +1204,7 @@ if (is_ios || is_mac) { + "objc/unittests/RTCDefaultVideoEncoderFactory_xctest.mm", + "objc/unittests/RTCEncodedImage_xctest.mm", + "objc/unittests/RTCFileVideoCapturer_xctest.mm", ++ "objc/unittests/RTCFrameEncryption_xctest.mm", + "objc/unittests/RTCH264ProfileLevelId_xctest.m", + "objc/unittests/RTCIceCandidateTest.mm", + "objc/unittests/RTCIceServerTest.mm", +@@ -1375,6 +1383,8 @@ if (is_ios || is_mac) { "objc/api/peerconnection/RTCDataChannel.h", "objc/api/peerconnection/RTCDataChannelConfiguration.h", "objc/api/peerconnection/RTCFieldTrials.h", @@ -32,7 +40,7 @@ index aeb65e1..9591156 100644 "objc/api/peerconnection/RTCIceCandidate.h", "objc/api/peerconnection/RTCIceCandidateErrorEvent.h", "objc/api/peerconnection/RTCIceServer.h", -@@ -1495,6 +1504,8 @@ if (is_ios || is_mac) { +@@ -1495,6 +1505,8 @@ if (is_ios || is_mac) { "objc/api/peerconnection/RTCDtlsFingerprint.h", "objc/api/peerconnection/RTCDtmfSender.h", "objc/api/peerconnection/RTCFieldTrials.h", @@ -99,10 +107,10 @@ index 0000000..522401c +NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCFrameDecryptor.h b/sdk/objc/api/peerconnection/RTCFrameDecryptor.h new file mode 100644 -index 0000000..6b6b1b8 +index 0000000..c7fc1d3 --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameDecryptor.h -@@ -0,0 +1,50 @@ +@@ -0,0 +1,52 @@ +/* + * Copyright 2023 The WebRTC project authors. All Rights Reserved. + * @@ -127,7 +135,9 @@ index 0000000..6b6b1b8 +@protocol RTC_OBJC_TYPE +(RTCFrameDecryptorDelegate) + -+ /** Returns the decrypted frame, or nil to drop it. */ ++ /** Called on a WebRTC decoder thread. `encrypted` borrows WebRTC's ++ * buffer and is valid only during the call. Returns the decrypted ++ * frame, or nil to drop it. */ + - (nullable NSData *)frameDecryptor + : (RTC_OBJC_TYPE(RTCFrameDecryptor) *)decryptor mediaType + : (RTCRtpMediaType)mediaType withFrame : (NSData *)encrypted; @@ -155,10 +165,10 @@ index 0000000..6b6b1b8 +NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCFrameDecryptor.mm b/sdk/objc/api/peerconnection/RTCFrameDecryptor.mm new file mode 100644 -index 0000000..02dcdae +index 0000000..f0aafd5 --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameDecryptor.mm -@@ -0,0 +1,105 @@ +@@ -0,0 +1,111 @@ +/* + * Copyright 2023 The WebRTC project authors. All Rights Reserved. + * @@ -175,7 +185,6 @@ index 0000000..02dcdae +#import "base/RTCLogging.h" + +#include -+#include + +#include "api/make_ref_counted.h" +#include "rtc_base/checks.h" @@ -194,19 +203,26 @@ index 0000000..02dcdae + std::span additional_data, + std::span encrypted_frame, + std::span frame) { -+ RTC_OBJC_TYPE(RTCFrameDecryptor) *decryptor = decryptor_; -+ NSData *encrypted = [NSData dataWithBytes:encrypted_frame.data() -+ length:encrypted_frame.size()]; -+ NSData *decrypted = [decryptor.delegate -+ frameDecryptor:decryptor -+ mediaType:[RTC_OBJC_TYPE(RTCRtpReceiver) -+ mediaTypeForNativeMediaType:media_type] -+ withFrame:encrypted]; -+ if (decrypted == nil || decrypted.length > frame.size()) { -+ return Result(Status::kFailedToDecrypt, 0); ++ // Releases per-frame objects here rather than in the calling thread's pool. ++ @autoreleasepool { ++ RTC_OBJC_TYPE(RTCFrameDecryptor) *decryptor = decryptor_; ++ NSData *encrypted = [NSData ++ dataWithBytesNoCopy:const_cast(encrypted_frame.data()) ++ length:encrypted_frame.size() ++ freeWhenDone:NO]; ++ NSData *decrypted = [decryptor.delegate ++ frameDecryptor:decryptor ++ mediaType:[RTC_OBJC_TYPE(RTCRtpReceiver) ++ mediaTypeForNativeMediaType:media_type] ++ withFrame:encrypted]; ++ if (decrypted == nil || decrypted.length > frame.size()) { ++ return Result(Status::kFailedToDecrypt, 0); ++ } ++ std::copy_n(static_cast(decrypted.bytes), ++ decrypted.length, ++ frame.data()); ++ return Result(Status::kOk, decrypted.length); + } -+ std::memcpy(frame.data(), decrypted.bytes, decrypted.length); -+ return Result(Status::kOk, decrypted.length); +} + +size_t RTCFrameDecryptorAdapter::GetMaxPlaintextByteSize( @@ -266,10 +282,10 @@ index 0000000..02dcdae +@end diff --git a/sdk/objc/api/peerconnection/RTCFrameEncryptor+Private.h b/sdk/objc/api/peerconnection/RTCFrameEncryptor+Private.h new file mode 100644 -index 0000000..b72c223 +index 0000000..6493b22 --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameEncryptor+Private.h -@@ -0,0 +1,51 @@ +@@ -0,0 +1,53 @@ +/* + * Copyright 2023 The WebRTC project authors. All Rights Reserved. + * @@ -291,6 +307,8 @@ index 0000000..b72c223 + +class RTCFrameEncryptorAdapter : public FrameEncryptorInterface { + public: ++ static constexpr int kEncryptionFailed = 1; ++ + RTCFrameEncryptorAdapter(RTC_OBJC_TYPE(RTCFrameEncryptor) * encryptor, + int size_change); + @@ -323,10 +341,10 @@ index 0000000..b72c223 +NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCFrameEncryptor.h b/sdk/objc/api/peerconnection/RTCFrameEncryptor.h new file mode 100644 -index 0000000..b879e66 +index 0000000..f062dc7 --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameEncryptor.h -@@ -0,0 +1,50 @@ +@@ -0,0 +1,52 @@ +/* + * Copyright 2023 The WebRTC project authors. All Rights Reserved. + * @@ -351,7 +369,9 @@ index 0000000..b879e66 +@protocol RTC_OBJC_TYPE +(RTCFrameEncryptorDelegate) + -+ /** Returns the encrypted frame, or nil to drop it. */ ++ /** Called on a WebRTC encoder thread. `unencrypted` borrows WebRTC's ++ * buffer and is valid only during the call. Returns the encrypted ++ * frame, or nil to drop it. */ + - (nullable NSData *)frameEncryptor + : (RTC_OBJC_TYPE(RTCFrameEncryptor) *)encryptor mediaType + : (RTCRtpMediaType)mediaType withFrame : (NSData *)unencrypted; @@ -379,10 +399,10 @@ index 0000000..b879e66 +NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCFrameEncryptor.mm b/sdk/objc/api/peerconnection/RTCFrameEncryptor.mm new file mode 100644 -index 0000000..472f16e +index 0000000..1ef3dba --- /dev/null +++ b/sdk/objc/api/peerconnection/RTCFrameEncryptor.mm -@@ -0,0 +1,105 @@ +@@ -0,0 +1,112 @@ +/* + * Copyright 2023 The WebRTC project authors. All Rights Reserved. + * @@ -399,7 +419,6 @@ index 0000000..472f16e +#import "base/RTCLogging.h" + +#include -+#include + +#include "api/make_ref_counted.h" +#include "rtc_base/checks.h" @@ -418,19 +437,27 @@ index 0000000..472f16e + std::span frame, + std::span encrypted_frame, + size_t *bytes_written) { -+ RTC_OBJC_TYPE(RTCFrameEncryptor) *encryptor = encryptor_; -+ NSData *unencrypted = [NSData dataWithBytes:frame.data() length:frame.size()]; -+ NSData *encrypted = [encryptor.delegate -+ frameEncryptor:encryptor -+ mediaType:[RTC_OBJC_TYPE(RTCRtpReceiver) -+ mediaTypeForNativeMediaType:media_type] -+ withFrame:unencrypted]; -+ if (encrypted == nil || encrypted.length > encrypted_frame.size()) { -+ return 1; ++ // Releases per-frame objects here rather than in the calling thread's pool. ++ @autoreleasepool { ++ RTC_OBJC_TYPE(RTCFrameEncryptor) *encryptor = encryptor_; ++ NSData *unencrypted = ++ [NSData dataWithBytesNoCopy:const_cast(frame.data()) ++ length:frame.size() ++ freeWhenDone:NO]; ++ NSData *encrypted = [encryptor.delegate ++ frameEncryptor:encryptor ++ mediaType:[RTC_OBJC_TYPE(RTCRtpReceiver) ++ mediaTypeForNativeMediaType:media_type] ++ withFrame:unencrypted]; ++ if (encrypted == nil || encrypted.length > encrypted_frame.size()) { ++ return kEncryptionFailed; ++ } ++ std::copy_n(static_cast(encrypted.bytes), ++ encrypted.length, ++ encrypted_frame.data()); ++ *bytes_written = encrypted.length; ++ return 0; + } -+ std::memcpy(encrypted_frame.data(), encrypted.bytes, encrypted.length); -+ *bytes_written = encrypted.length; -+ return 0; +} + +size_t RTCFrameEncryptorAdapter::GetMaxCiphertextByteSize(MediaType media_type, @@ -578,3 +605,313 @@ index f3135c6..b8a2547 100644 #pragma mark - Native - (void)setFrameEncryptor: +diff --git a/sdk/objc/unittests/RTCFrameEncryption_xctest.mm b/sdk/objc/unittests/RTCFrameEncryption_xctest.mm +new file mode 100644 +index 0000000..84dc5fc +--- /dev/null ++++ b/sdk/objc/unittests/RTCFrameEncryption_xctest.mm +@@ -0,0 +1,304 @@ ++/* ++ * Copyright 2026 The WebRTC project authors. All Rights Reserved. ++ * ++ * Use of this source code is governed by a BSD-style license ++ * that can be found in the LICENSE file in the root of the source ++ * tree. An additional intellectual property rights grant can be found ++ * in the file PATENTS. All contributing project authors may ++ * be found in the AUTHORS file in the root of the source tree. ++ */ ++ ++#import ++#import ++ ++#include ++#include ++ ++#import "api/peerconnection/RTCConfiguration.h" ++#import "api/peerconnection/RTCFrameDecryptor+Private.h" ++#import "api/peerconnection/RTCFrameEncryptor+Private.h" ++#import "api/peerconnection/RTCMediaConstraints.h" ++#import "api/peerconnection/RTCPeerConnection.h" ++#import "api/peerconnection/RTCPeerConnectionFactory.h" ++#import "api/peerconnection/RTCRtpReceiver+Private.h" ++#import "api/peerconnection/RTCRtpSender+Private.h" ++#import "api/peerconnection/RTCRtpTransceiver.h" ++ ++typedef NSData *_Nullable (^RTCFrameTransform)(NSData *frame); ++ ++@interface RTCFrameTransformDelegate ++ : NSObject ++@property(nonatomic, copy) RTCFrameTransform transform; ++@property(nonatomic, readonly) RTCRtpMediaType lastMediaType; ++@property(nonatomic, readonly) const void *lastFrameBytes; ++ ++- (instancetype)initWithTransform:(RTCFrameTransform)transform; ++ ++@end ++ ++@implementation RTCFrameTransformDelegate ++ ++@synthesize transform = _transform; ++@synthesize lastMediaType = _lastMediaType; ++@synthesize lastFrameBytes = _lastFrameBytes; ++ ++- (instancetype)initWithTransform:(RTCFrameTransform)transform { ++ self = [super init]; ++ if (self) { ++ _transform = transform; ++ _lastMediaType = RTCRtpMediaTypeUnsupported; ++ } ++ return self; ++} ++ ++- (nullable NSData *)frameEncryptor: ++ (RTC_OBJC_TYPE(RTCFrameEncryptor) *)encryptor ++ mediaType:(RTCRtpMediaType)mediaType ++ withFrame:(NSData *)unencrypted { ++ return [self record:mediaType frame:unencrypted]; ++} ++ ++- (nullable NSData *)frameDecryptor: ++ (RTC_OBJC_TYPE(RTCFrameDecryptor) *)decryptor ++ mediaType:(RTCRtpMediaType)mediaType ++ withFrame:(NSData *)encrypted { ++ return [self record:mediaType frame:encrypted]; ++} ++ ++- (nullable NSData *)record:(RTCRtpMediaType)mediaType frame:(NSData *)frame { ++ _lastMediaType = mediaType; ++ _lastFrameBytes = frame.bytes; ++ return _transform(frame); ++} ++ ++@end ++ ++static RTCFrameTransform AppendBytes(NSUInteger count, uint8_t value) { ++ return ^NSData *(NSData *frame) { ++ NSMutableData *result = [frame mutableCopy]; ++ std::vector tail(count, value); ++ [result appendBytes:tail.data() length:tail.size()]; ++ return result; ++ }; ++} ++ ++static RTCFrameTransform DropLastBytes(NSUInteger count) { ++ return ^NSData *(NSData *frame) { ++ return [frame subdataWithRange:NSMakeRange(0, frame.length - count)]; ++ }; ++} ++ ++static constexpr uint8_t kFillByte = 0xAA; ++static constexpr size_t kUnwritten = 12345; ++ ++@interface RTCFrameEncryptionTest : XCTestCase ++@end ++ ++@implementation RTCFrameEncryptionTest ++ ++- (void)testEncryptCopiesDelegateOutputIntoBuffer { ++ RTCFrameTransformDelegate *delegate = [[RTCFrameTransformDelegate alloc] ++ initWithTransform:AppendBytes(4, kFillByte)]; ++ RTC_OBJC_TYPE(RTCFrameEncryptor) *encryptor = ++ [[RTC_OBJC_TYPE(RTCFrameEncryptor) alloc] initWithSizeChange:4]; ++ encryptor.delegate = delegate; ++ webrtc::scoped_refptr native = ++ encryptor.nativeFrameEncryptor; ++ ++ const std::vector frame = {1, 2, 3}; ++ std::vector output( ++ native->GetMaxCiphertextByteSize(webrtc::MediaType::AUDIO, frame.size())); ++ size_t written = kUnwritten; ++ int status = ++ native->Encrypt(webrtc::MediaType::AUDIO, 0, {}, frame, output, &written); ++ ++ XCTAssertEqual(status, 0); ++ XCTAssertEqual(written, 7u); ++ XCTAssertTrue((output == ++ std::vector{ ++ 1, 2, 3, kFillByte, kFillByte, kFillByte, kFillByte})); ++ XCTAssertEqual(delegate.lastMediaType, RTCRtpMediaTypeAudio); ++ XCTAssertTrue(delegate.lastFrameBytes == frame.data(), ++ @"Delegate should receive WebRTC's buffer without a copy"); ++} ++ ++- (void)testEncryptRejectsOutputLargerThanBuffer { ++ RTCFrameTransformDelegate *delegate = [[RTCFrameTransformDelegate alloc] ++ initWithTransform:AppendBytes(8, kFillByte)]; ++ RTC_OBJC_TYPE(RTCFrameEncryptor) *encryptor = ++ [[RTC_OBJC_TYPE(RTCFrameEncryptor) alloc] initWithSizeChange:4]; ++ encryptor.delegate = delegate; ++ webrtc::scoped_refptr native = ++ encryptor.nativeFrameEncryptor; ++ ++ const std::vector frame = {1, 2, 3}; ++ std::vector output( ++ native->GetMaxCiphertextByteSize(webrtc::MediaType::AUDIO, frame.size())); ++ size_t written = kUnwritten; ++ int status = ++ native->Encrypt(webrtc::MediaType::AUDIO, 0, {}, frame, output, &written); ++ ++ XCTAssertEqual(status, webrtc::RTCFrameEncryptorAdapter::kEncryptionFailed); ++ XCTAssertEqual(written, kUnwritten); ++ XCTAssertTrue((output == std::vector(7, 0)), ++ @"Buffer must stay untouched when output does not fit"); ++} ++ ++- (void)testEncryptFailsWithoutDelegate { ++ RTC_OBJC_TYPE(RTCFrameEncryptor) *encryptor = ++ [[RTC_OBJC_TYPE(RTCFrameEncryptor) alloc] initWithSizeChange:4]; ++ webrtc::scoped_refptr native = ++ encryptor.nativeFrameEncryptor; ++ ++ const std::vector frame = {1, 2, 3}; ++ std::vector output(7); ++ size_t written = kUnwritten; ++ int status = ++ native->Encrypt(webrtc::MediaType::VIDEO, 0, {}, frame, output, &written); ++ ++ XCTAssertEqual(status, webrtc::RTCFrameEncryptorAdapter::kEncryptionFailed); ++ XCTAssertEqual(written, kUnwritten); ++} ++ ++- (void)testEncryptFailsAfterEncryptorIsReleased { ++ RTCFrameTransformDelegate *delegate = [[RTCFrameTransformDelegate alloc] ++ initWithTransform:AppendBytes(4, kFillByte)]; ++ webrtc::scoped_refptr native; ++ @autoreleasepool { ++ RTC_OBJC_TYPE(RTCFrameEncryptor) *encryptor = ++ [[RTC_OBJC_TYPE(RTCFrameEncryptor) alloc] initWithSizeChange:4]; ++ encryptor.delegate = delegate; ++ native = encryptor.nativeFrameEncryptor; ++ } ++ ++ const std::vector frame = {1, 2, 3}; ++ std::vector output(7); ++ size_t written = kUnwritten; ++ int status = ++ native->Encrypt(webrtc::MediaType::AUDIO, 0, {}, frame, output, &written); ++ ++ XCTAssertEqual(status, ++ webrtc::RTCFrameEncryptorAdapter::kEncryptionFailed, ++ @"A sender may keep the adapter after the encryptor is gone"); ++ XCTAssertTrue(delegate.lastFrameBytes == nullptr, ++ @"Delegate must not be called once the encryptor is gone"); ++} ++ ++- (void)testDecryptCopiesDelegateOutputIntoBuffer { ++ RTCFrameTransformDelegate *delegate = ++ [[RTCFrameTransformDelegate alloc] initWithTransform:DropLastBytes(2)]; ++ RTC_OBJC_TYPE(RTCFrameDecryptor) *decryptor = ++ [[RTC_OBJC_TYPE(RTCFrameDecryptor) alloc] initWithSizeChange:0]; ++ decryptor.delegate = delegate; ++ webrtc::scoped_refptr native = ++ decryptor.nativeFrameDecryptor; ++ ++ const std::vector encrypted = {1, 2, 3, 4, 5}; ++ std::vector output(native->GetMaxPlaintextByteSize( ++ webrtc::MediaType::VIDEO, encrypted.size())); ++ webrtc::FrameDecryptorInterface::Result result = ++ native->Decrypt(webrtc::MediaType::VIDEO, {}, {}, encrypted, output); ++ ++ XCTAssertTrue(result.IsOk()); ++ XCTAssertEqual(result.bytes_written, 3u); ++ XCTAssertTrue((output == std::vector{1, 2, 3, 0, 0})); ++ XCTAssertEqual(delegate.lastMediaType, RTCRtpMediaTypeVideo); ++ XCTAssertTrue(delegate.lastFrameBytes == encrypted.data(), ++ @"Delegate should receive WebRTC's buffer without a copy"); ++} ++ ++- (void)testDecryptRejectsOutputLargerThanBuffer { ++ RTCFrameTransformDelegate *delegate = [[RTCFrameTransformDelegate alloc] ++ initWithTransform:AppendBytes(1, kFillByte)]; ++ RTC_OBJC_TYPE(RTCFrameDecryptor) *decryptor = ++ [[RTC_OBJC_TYPE(RTCFrameDecryptor) alloc] initWithSizeChange:0]; ++ decryptor.delegate = delegate; ++ webrtc::scoped_refptr native = ++ decryptor.nativeFrameDecryptor; ++ ++ const std::vector encrypted = {1, 2, 3}; ++ std::vector output(native->GetMaxPlaintextByteSize( ++ webrtc::MediaType::AUDIO, encrypted.size())); ++ webrtc::FrameDecryptorInterface::Result result = ++ native->Decrypt(webrtc::MediaType::AUDIO, {}, {}, encrypted, output); ++ ++ XCTAssertEqual(result.status, ++ webrtc::FrameDecryptorInterface::Status::kFailedToDecrypt); ++ XCTAssertEqual(result.bytes_written, 0u); ++ XCTAssertTrue((output == std::vector(3, 0)), ++ @"Buffer must stay untouched when output does not fit"); ++} ++ ++- (void)testDecryptFailsWithoutDelegate { ++ RTC_OBJC_TYPE(RTCFrameDecryptor) *decryptor = ++ [[RTC_OBJC_TYPE(RTCFrameDecryptor) alloc] initWithSizeChange:0]; ++ webrtc::scoped_refptr native = ++ decryptor.nativeFrameDecryptor; ++ ++ const std::vector encrypted = {1, 2, 3}; ++ std::vector output(3); ++ webrtc::FrameDecryptorInterface::Result result = ++ native->Decrypt(webrtc::MediaType::AUDIO, {}, {}, encrypted, output); ++ ++ XCTAssertEqual(result.status, ++ webrtc::FrameDecryptorInterface::Status::kFailedToDecrypt); ++} ++ ++- (void)testMaxSizeAppliesSizeChangeAndClampsAtZero { ++ RTC_OBJC_TYPE(RTCFrameEncryptor) *growing = ++ [[RTC_OBJC_TYPE(RTCFrameEncryptor) alloc] initWithSizeChange:28]; ++ RTC_OBJC_TYPE(RTCFrameDecryptor) *shrinking = ++ [[RTC_OBJC_TYPE(RTCFrameDecryptor) alloc] initWithSizeChange:-28]; ++ ++ XCTAssertEqual(growing.nativeFrameEncryptor->GetMaxCiphertextByteSize( ++ webrtc::MediaType::VIDEO, 100), ++ 128u); ++ XCTAssertEqual(shrinking.nativeFrameDecryptor->GetMaxPlaintextByteSize( ++ webrtc::MediaType::VIDEO, 100), ++ 72u); ++ XCTAssertEqual(shrinking.nativeFrameDecryptor->GetMaxPlaintextByteSize( ++ webrtc::MediaType::VIDEO, 10), ++ 0u, ++ @"A negative size change must not wrap around"); ++} ++ ++- (void)testSetRtcFrameCryptorsAttachToNativeSenderAndReceiver { ++ RTC_OBJC_TYPE(RTCConfiguration) *config = ++ [[RTC_OBJC_TYPE(RTCConfiguration) alloc] init]; ++ config.sdpSemantics = RTCSdpSemanticsUnifiedPlan; ++ RTC_OBJC_TYPE(RTCMediaConstraints) *constraints = ++ [[RTC_OBJC_TYPE(RTCMediaConstraints) alloc] ++ initWithMandatoryConstraints:@{} ++ optionalConstraints:nil]; ++ RTC_OBJC_TYPE(RTCRtpTransceiverInit) *init = ++ [[RTC_OBJC_TYPE(RTCRtpTransceiverInit) alloc] init]; ++ RTC_OBJC_TYPE(RTCFrameEncryptor) *encryptor = ++ [[RTC_OBJC_TYPE(RTCFrameEncryptor) alloc] initWithSizeChange:28]; ++ RTC_OBJC_TYPE(RTCFrameDecryptor) *decryptor = ++ [[RTC_OBJC_TYPE(RTCFrameDecryptor) alloc] initWithSizeChange:0]; ++ ++ @autoreleasepool { ++ RTC_OBJC_TYPE(RTCPeerConnectionFactory) *factory = ++ [[RTC_OBJC_TYPE(RTCPeerConnectionFactory) alloc] init]; ++ RTC_OBJC_TYPE(RTCPeerConnection) *peerConnection = ++ [factory peerConnectionWithConfiguration:config ++ constraints:constraints ++ delegate:nil]; ++ RTC_OBJC_TYPE(RTCRtpTransceiver) *transceiver = ++ [peerConnection addTransceiverOfType:RTCRtpMediaTypeVideo init:init]; ++ XCTAssertNotNil(transceiver); ++ ++ [transceiver.sender setRtcFrameEncryptor:encryptor]; ++ [transceiver.receiver setRtcFrameDecryptor:decryptor]; ++ ++ XCTAssertTrue(transceiver.sender.nativeRtpSender->GetFrameEncryptor() == ++ encryptor.nativeFrameEncryptor); ++ XCTAssertTrue(transceiver.receiver.nativeRtpReceiver->GetFrameDecryptor() == ++ decryptor.nativeFrameDecryptor); ++ ++ [peerConnection close]; ++ } ++} ++ ++@end From a26f8e3666feff0b2e7afdb23cbf1b113bc63609 Mon Sep 17 00:00:00 2001 From: sh Date: Thu, 22 Oct 2026 11:49:26 +0000 Subject: [PATCH 74/74] ci: build xcframework artifact on push --- .github/workflows/webrtc-build.yml | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/webrtc-build.yml b/.github/workflows/webrtc-build.yml index 97daca85c7..ff6315f539 100644 --- a/.github/workflows/webrtc-build.yml +++ b/.github/workflows/webrtc-build.yml @@ -1,8 +1,9 @@ -name: WebRTC Manual Build -run-name: WebRTC Manual Build +name: WebRTC Build +run-name: WebRTC Build env: XCODE_VERSION: 26.6 + WEBRTC_BRANCH: branch-heads/8078 on: workflow_dispatch: @@ -10,7 +11,7 @@ on: branch: description: "webRTC branch head. Ex: branch-heads/6167" required: true - default: "branch-heads/0000" + default: "branch-heads/8078" type: string ios: description: "Build iOS libraries" @@ -27,6 +28,14 @@ on: required: true default: false type: boolean + push: + paths: + - ".github/workflows/webrtc-build.yml" + - "patches/**" + - "scripts/**" +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: Build-Script: runs-on: macos-latest @@ -49,10 +58,10 @@ jobs: sh scripts/clean.sh sh scripts/build.sh env: - BRANCH: ${{ inputs.branch }} - IOS: ${{ inputs.ios }} - MACOS: ${{ inputs.macos }} - MAC_CATALYST: ${{ inputs.maccatalyst }} + BRANCH: ${{ inputs.branch || env.WEBRTC_BRANCH }} + IOS: ${{ github.event_name == 'push' || inputs.ios }} + MACOS: ${{ github.event_name == 'workflow_dispatch' && inputs.macos }} + MAC_CATALYST: ${{ github.event_name == 'workflow_dispatch' && inputs.maccatalyst }} - name: Upload framework uses: actions/upload-artifact@v6 with: