Skip to content

[CoreTelephony] Update bindings up to Xcode 27.0 Beta 3 - #26160

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

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

Conversation

@dalexsoto

Copy link
Copy Markdown
Member

Summary

  • add the Xcode 27 CoreTelephony cellular-plan availability, confidence, and authorization APIs
  • add CTQuickSwitchManager, CTQuickSwitchState, the optional delegate protocol, state queries, and background-launch registration
  • generate Task-based wrappers with named completion delegates and a typed status-hint result
  • document the new behavior from Apple DocC, including E.164 inputs, authorization UI, consent handling, and background launch
  • import CTQuickSwitch.h from the static registrar because CoreTelephony has no umbrella header
  • remove the resolved iOS and Mac Catalyst xtro todo files

Validation

  • make world
  • clean xtro generation/classification: sanity passed
  • clean Cecil suite: passed
  • iOS 27.0 Beta 3 (24A5380g) introspection: 44/44 passed
  • tvOS 27.0 Beta 3 (24J5315h) introspection: 43/43 passed
  • macOS introspection: 32/32 passed, 2 expected host-version ignores
  • Mac Catalyst relevant targeted fixtures: 19/19 passed; the full constructor sweep hits the known host TCC privacy abort in CLLocationButton
  • AppSizeTest: 0 failures; all 16 cases skipped by the repository beta-Xcode guard

No monotouch test was added because all new APIs are generated bindings and the operations require cellular state, consent, or background-launch behavior that is not deterministic in a unit test.

Bind the new cellular plan availability, confidence, and authorization
APIs, including asynchronous authorization and status-hint operations.

Add CTQuickSwitchManager, its state enum, optional delegate protocol,
weak delegate pattern, state queries, and background-launch registration.
Import CTQuickSwitch.h in the static registrar because CoreTelephony does
not provide an umbrella header, and remove the resolved xtro todo files.

Document the new API behavior from Apple's DocC content and record the
single generated Dispose documentation baseline entry.

Validation:
- make world
- clean xtro generation, classification, and sanity
- clean Cecil test suite
- iOS 27 Beta 3 introspection: 44/44
- tvOS 27 Beta 3 introspection: 43/43
- macOS introspection: 32/32 with 2 host-version ignores
- Mac Catalyst relevant targeted fixtures: 19/19; the full constructor
  sweep hits the known host TCC privacy abort
- AppSizeTest: 0 failures, 16 beta-Xcode skips

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c3d20023-fe86-4094-a0b3-3f8cea07dc4a
@dalexsoto
dalexsoto requested a review from rolfbjarne as a code owner July 17, 2026 03:57
Copilot AI review requested due to automatic review settings July 17, 2026 03:57
@dalexsoto dalexsoto added this to the xcode27 milestone Jul 17, 2026

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 CoreTelephony bindings to match Xcode 27.0 Beta 3, including new cellular plan status APIs and the new quick-switch APIs, and aligns generator/test infrastructure accordingly.

Changes:

  • Added new CoreTelephony binding surface for cellular plan availability/confidence/authorization and quick-switch (manager, state enum, delegate, async wrappers).
  • Updated the static registrar to import CTQuickSwitch.h (CoreTelephony lacks an umbrella header).
  • Removed resolved xtro-sharpie CoreTelephony .todo entries and updated Cecil documentation known-failures for the newly introduced bound type.

Reviewed changes

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

Show a summary per file
File Description
tools/common/StaticRegistrar.cs Imports CTQuickSwitch.h when generating static registrar headers for CoreTelephony.
src/coretelephony.cs Adds new Xcode 27 CoreTelephony APIs (enums, delegates, CTQuickSwitchManager + async wrappers, new CTCellularPlanStatus APIs).
tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreTelephony.todo Removes resolved xtro missing-binding entries for iOS CoreTelephony.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreTelephony.todo Removes resolved xtro missing-binding entries for Mac Catalyst CoreTelephony.
tests/cecil-tests/Documentation.KnownFailures.txt Adds the new Dispose(Boolean) known-failure entry for CTQuickSwitchManager.

@dalexsoto
dalexsoto enabled auto-merge (squash) July 17, 2026 05:21
@vs-mobiletools-engineering-service2

This comment has been minimized.

@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: 32fc68b0339e53630df56bd5c3df380d1ff0b529 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

Comment thread src/coretelephony.cs
Comment on lines +553 to +555
/// <param name="phoneNumber">A phone number in E.164 format, such as <c>+15550001234</c>.</param>
/// <param name="completionHandler">The handler to invoke with the authorization status or an error.</param>
/// <summary>Presents a prompt that asks the user to allow cellular plan checks for a phone number.</summary>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

NBD, this is mostly for future PRs, but the xml-doc-writer skill lists the desired element order (last line): https://github.com/dotnet/macios/blob/main/.github/agents/xml-doc-writer.md

Any chance this could be incorporated somehow in the binding skill (for future PRs)?

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🚀 [CI Build #32fc68b] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 195 tests passed 🎉

Tests counts

✅ assembly-processing: All 1 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ cecil: All 1 tests passed. 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. [attempt 2] 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. 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. 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. [attempt 2] Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 18 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 19 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 19 tests passed. 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. [attempt 2] Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. [attempt 2] Html Report (VSDrops) Download
⚠️ Tests on macOS Golden Gate (27): Tests skipped, incorrect beta version. [attempt 2] Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: 32fc68b0339e53630df56bd5c3df380d1ff0b529 [PR build]

@dalexsoto
dalexsoto merged commit 1de70c0 into xcode27.0 Jul 17, 2026
56 checks passed
@dalexsoto
dalexsoto deleted the dev/alex/xc27-CoreTelephony branch July 17, 2026 12:22
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