Skip to content

[ReplayKit] Update bindings up to Xcode 27.0 Beta 3 - #26278

Merged
dalexsoto merged 1 commit into
xcode27.0from
dev/alex/xc27-ReplayKit
Jul 24, 2026
Merged

[ReplayKit] Update bindings up to Xcode 27.0 Beta 3#26278
dalexsoto merged 1 commit into
xcode27.0from
dev/alex/xc27-ReplayKit

Conversation

@dalexsoto

Copy link
Copy Markdown
Member

Summary

  • add Xcode 27 deprecation metadata for ReplayKit recording, preview, broadcast, and picker APIs
  • apply obsoletion metadata consistently across every supported Apple platform
  • remove the resolved ReplayKit xtro todo files

Validation

  • make world
  • clean xtro generation/classification and sanity
  • clean cecil suite: 112 passed, 4 skipped
  • iOS 27 introspection: 44 passed
  • tvOS 27 introspection: 43 passed
  • macOS introspection: 32 passed, 2 host-version skips
  • Mac Catalyst: every fixture except the known TCC-gated iOSApiCtorInitTest passed individually; the full run aborts while constructing CLLocationButton in a headless terminal
  • dotnet app-size suite: 16 expected skips on beta Xcode
  • opt-in availability analyzer produced only unrelated pre-existing nullable warnings and no ReplayKit warnings

Add Xcode 27 deprecation metadata for ReplayKit recording, preview, broadcast, and picker APIs on every supported platform. Use managed ScreenCaptureKit replacement names so the generated availability diagnostics are consistent across platform assemblies.

Remove the resolved ReplayKit xtro todo files for iOS, tvOS, macOS, and Mac Catalyst.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ce386f09-9f95-4325-9e53-3304cee7641f
Copilot AI review requested due to automatic review settings July 24, 2026 00:13
@dalexsoto dalexsoto added this to the xcode27 milestone Jul 24, 2026
@dalexsoto
dalexsoto requested a review from rolfbjarne July 24, 2026 00:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the ReplayKit binding definitions to reflect Xcode 27.0 Beta 3 deprecations across platforms, and cleans up xtro todo files that are now resolved.

Changes:

  • Add [Deprecated] attributes for ReplayKit recording/preview/broadcast APIs across iOS/tvOS/macOS/Mac Catalyst.
  • Align deprecation metadata for delegates/members that were previously missing it (per xtro).
  • Remove resolved ReplayKit xtro-sharpie .todo files.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/replaykit.cs Adds Xcode 27 deprecation metadata to ReplayKit bindings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-ReplayKit.todo Removed resolved xtro todo entries.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-ReplayKit.todo Removed resolved xtro todo entries.
tests/xtro-sharpie/api-annotations-dotnet/macOS-ReplayKit.todo Removed resolved xtro todo entries.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-ReplayKit.todo Removed resolved xtro todo entries.
Comments suppressed due to low confidence (3)

src/replaykit.cs:155

  • The Obsolete message suggests ScreenCaptureKit on iOS/tvOS, but this repo's ScreenCaptureKit bindings are currently [NoiOS, NoTV] (e.g., SCStream, SCContentSharingPicker, SCRecordingOutput). This makes the guidance misleading for iOS/tvOS developers. Consider limiting the message to macOS/Mac Catalyst (or updating ScreenCaptureKit availability as part of the PR).
		[Deprecated (PlatformName.iOS, 27, 0, message: "Use ScreenCaptureKit instead.")]
		[Deprecated (PlatformName.TvOS, 27, 0, message: "Use ScreenCaptureKit instead.")]
		[Deprecated (PlatformName.MacOSX, 27, 0, message: "Use ScreenCaptureKit instead.")]
		[Deprecated (PlatformName.MacCatalyst, 27, 0, message: "Use ScreenCaptureKit instead.")]

src/replaykit.cs:192

  • The message references SCContentSharingPicker.Available, but SCContentSharingPicker in this repo doesn't have an Available property (it has Active, etc). This makes the deprecation guidance inaccurate; consider removing the non-existent member name or updating it to an actually bound API.
		[Deprecated (PlatformName.iOS, 27, 0, message: "Use 'SCContentSharingPicker.Available' instead.")]
		[Deprecated (PlatformName.TvOS, 27, 0, message: "Use 'SCContentSharingPicker.Available' instead.")]
		[Deprecated (PlatformName.MacOSX, 27, 0, message: "Use 'SCContentSharingPicker.Available' instead.")]
		[Deprecated (PlatformName.MacCatalyst, 27, 0, message: "Use 'SCContentSharingPicker.Available' instead.")]

src/replaykit.cs:268

  • SCClipBufferingOutput isn't currently bound anywhere in this repo (no SCClipBufferingOutput type under src/), so the deprecation message points to an API that .NET consumers can't use. Consider using a message that doesn't name unbound types (or add the missing binding if the type exists in the SDK).
		[Deprecated (PlatformName.iOS, 27, 0, message: "Use 'SCStream' with 'SCClipBufferingOutput' instead.")]
		[Deprecated (PlatformName.TvOS, 27, 0, message: "Use 'SCStream' with 'SCClipBufferingOutput' instead.")]
		[Deprecated (PlatformName.MacOSX, 27, 0, message: "Use 'SCStream' with 'SCClipBufferingOutput' instead.")]
		[Deprecated (PlatformName.MacCatalyst, 27, 0, message: "Use 'SCStream' with 'SCClipBufferingOutput' instead.")]

Comment thread src/replaykit.cs
Comment on lines +29 to +32
[Deprecated (PlatformName.iOS, 27, 0, message: "Use 'SCRecordingEditor' instead.")]
[Deprecated (PlatformName.TvOS, 27, 0, message: "Use 'SCRecordingEditor' instead.")]
[Deprecated (PlatformName.MacOSX, 27, 0, message: "Use 'SCRecordingEditor' instead.")]
[Deprecated (PlatformName.MacCatalyst, 27, 0, message: "Use 'SCRecordingEditor' instead.")]
Comment thread src/replaykit.cs
Comment on lines +114 to +117
[Deprecated (PlatformName.iOS, 27, 0, message: "Use 'SCStream' with 'SCRecordingOutput' instead.")]
[Deprecated (PlatformName.TvOS, 27, 0, message: "Use 'SCStream' with 'SCRecordingOutput' instead.")]
[Deprecated (PlatformName.MacOSX, 27, 0, message: "Use 'SCStream' with 'SCRecordingOutput' instead.")]
[Deprecated (PlatformName.MacCatalyst, 27, 0, message: "Use 'SCStream' with 'SCRecordingOutput' instead.")]
Comment thread src/replaykit.cs
Comment on lines +163 to +166
[Deprecated (PlatformName.iOS, 27, 0, message: "Use 'SCStream.Capturing' instead.")]
[Deprecated (PlatformName.TvOS, 27, 0, message: "Use 'SCStream.Capturing' instead.")]
[Deprecated (PlatformName.MacOSX, 27, 0, message: "Use 'SCStream.Capturing' instead.")]
[Deprecated (PlatformName.MacCatalyst, 27, 0, message: "Use 'SCStream.Capturing' instead.")]
@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 303f04f2113e74a8a7328fbcc1dc85bbd02fc467 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run xamarin-macios-sim-pr-tests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🚀 [CI Build #303f04f] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 200 tests passed 🎉

Tests counts

✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download
✅ cecil: All 1 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 6 tests passed. Html Report (VSDrops) Download
✅ linker (iOS): All 15 tests passed. [attempt 4] Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (tvOS): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 19 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 18 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 19 tests passed. [attempt 3] Html Report (VSDrops) Download
✅ monotouch (tvOS): All 19 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Golden Gate (27): All 5 tests passed. Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: 303f04f2113e74a8a7328fbcc1dc85bbd02fc467 [PR build]

@dalexsoto
dalexsoto merged commit 5eb2c0a into xcode27.0 Jul 24, 2026
56 checks passed
@dalexsoto
dalexsoto deleted the dev/alex/xc27-ReplayKit branch July 24, 2026 18:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants