[ReplayKit] Update bindings up to Xcode 27.0 Beta 3 - #26278
Conversation
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
There was a problem hiding this comment.
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
.todofiles.
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, butSCContentSharingPickerin this repo doesn't have anAvailableproperty (it hasActive, 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
SCClipBufferingOutputisn't currently bound anywhere in this repo (noSCClipBufferingOutputtype undersrc/), 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.")]
| [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.")] |
| [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.")] |
| [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.")] |
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
|
/azp run xamarin-macios-sim-pr-tests |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
🚀 [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 macOS tests✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
Summary
Validation
make worldiOSApiCtorInitTestpassed individually; the full run aborts while constructingCLLocationButtonin a headless terminal