Skip to content

[LinkSecurity] Update bindings up to Xcode 27.0 Beta 3 - #26174

Merged
dalexsoto merged 2 commits into
xcode27.0from
dev/alex/xc27-LinkSecurity
Jul 20, 2026
Merged

dalexsoto merged 2 commits into
xcode27.0from
dev/alex/xc27-LinkSecurity

Conversation

@dalexsoto

Copy link
Copy Markdown
Member

Summary

  • bind LSLinkSecurityManager on iOS, tvOS, macOS, and Mac Catalyst 27.0
  • add async URL flag checks with complete public API documentation
  • register LinkSecurity throughout framework metadata, generated defines, native-link expectations, and registrar coverage
  • remove the resolved LinkSecurity xtro todo files

Testing

  • make world before the changes and after each binding/wiring change
  • clean xtro generation/classification: sanity passed
  • clean cecil test run: 112 passed, 4 skipped, 0 failed
  • iOS 27 Beta 3 introspection (24A5380g): 44 passed
  • tvOS 27 Beta 3 introspection (24J5315h): 43 passed
  • macOS introspection: 32 passed, 2 OS-version-gated
  • Mac Catalyst: framework build/link passed; all fixtures and safe constructor checks passed individually, while the full constructor sweep hits the known host TCC abort in CLLocationButton
  • ProjectTest.LinkedWithNativeLibraries: 8 passed
  • clean AppSizeTest run: 16 skipped by the Beta-Xcode guard

The legacy MT4134 harness cannot run locally on this branch because its net48 test project restores against the net10 mtouch project (NU1201); the required framework entry is included.

Bind LSLinkSecurityManager across iOS, tvOS, macOS, and Mac Catalyst, including the asynchronous flagged-URL check and complete public API documentation.

Register LinkSecurity throughout the framework source lists, generated defines, native-link expectations, and old-SDK registrar coverage, and remove the resolved xtro todo files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: df8bdf90-4291-4ac1-98a7-9348c0c9e159
Copilot AI review requested due to automatic review settings July 17, 2026 21:41
@dalexsoto
dalexsoto requested a review from rolfbjarne as a code owner July 17, 2026 21:41
@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

This PR adds first-class support for the new LinkSecurity Apple framework (introduced in 27.0) across iOS, tvOS, macOS, and Mac Catalyst in the dotnet/macios binding + tooling ecosystem, including framework registration/wiring and removal of now-resolved xtro “missing” annotations.

Changes:

  • Added LSLinkSecurityManager bindings (including an async flagged-URL check with full public XML docs).
  • Registered LinkSecurity in framework metadata and build-time defines (framework lists + HAS_LINKSECURITY).
  • Updated test expectations/coverage for framework linking and registrar validation, and removed resolved xtro .todo files.

Reviewed changes

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

Show a summary per file
File Description
tools/common/Frameworks.cs Registers LinkSecurity for macOS/iOS/tvOS (and implicitly Mac Catalyst via iOS mutation).
src/frameworks.sources Adds LinkSecurity to COMMON_FRAMEWORKS so it’s included in platform framework lists/generation.
src/build/dotnet/generator-frameworks.g.cs Adds LinkSecurity to generated framework name lists and HaveLinkSecurity lookup.
src/rsp/dotnet/ios-defines-dotnet.rsp Defines HAS_LINKSECURITY for iOS builds.
src/rsp/dotnet/tvos-defines-dotnet.rsp Defines HAS_LINKSECURITY for tvOS builds.
src/rsp/dotnet/macos-defines-dotnet.rsp Defines HAS_LINKSECURITY for macOS builds.
src/rsp/dotnet/maccatalyst-defines-dotnet.rsp Defines HAS_LINKSECURITY for Mac Catalyst builds.
src/linksecurity.cs New binding definitions for LSLinkSecurityManager with async API docs.
tests/dotnet/UnitTests/ProjectTest.cs Updates expected native-framework link lists to include LinkSecurity.
tests/mtouch/RegistrarTest.cs Adds LinkSecurity to the MT4134 “invalid framework for older SDK” coverage list.
tests/xtro-sharpie/api-annotations-dotnet/iOS-LinkSecurity.todo Removed (resolved missing bindings).
tests/xtro-sharpie/api-annotations-dotnet/tvOS-LinkSecurity.todo Removed (resolved missing bindings).
tests/xtro-sharpie/api-annotations-dotnet/macOS-LinkSecurity.todo Removed (resolved missing bindings).
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-LinkSecurity.todo Removed (resolved missing bindings).

Resolve overlapping framework registry updates by retaining both EnhancedLinkSecurity and LinkSecurity across platform metadata and registrar coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: df8bdf90-4291-4ac1-98a7-9348c0c9e159
@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

✅ 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: d087a04cfc27caa54ccd8a4571f6d05bac052fd8 [PR build]

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ [CI Build #d087a04] Prepare .NET Release succeeded ✅

📦 Published NuGet packages (32 packages)

iOS

  • Microsoft.iOS.Ref.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.iOS.Runtime.ios-arm64.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.iOS.Runtime.ios.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.iOS.Runtime.iossimulator-arm64.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.iOS.Runtime.iossimulator-x64.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.iOS.Sdk.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.iOS.Templates.27.0.10299-xcode27.0.nupkg
  • Microsoft.iOS.Windows.Sdk.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.NET.Sdk.iOS.Manifest-10.0.400-preview.0.27.0.10299-xcode27.0.nupkg

MacCatalyst

  • Microsoft.MacCatalyst.Ref.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.MacCatalyst.Runtime.maccatalyst-arm64.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.MacCatalyst.Runtime.maccatalyst.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.MacCatalyst.Sdk.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.MacCatalyst.Templates.27.0.10299-xcode27.0.nupkg
  • Microsoft.NET.Sdk.MacCatalyst.Manifest-10.0.400-preview.0.27.0.10299-xcode27.0.nupkg

macOS

  • Microsoft.macOS.Ref.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.macOS.Runtime.osx-arm64.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.macOS.Runtime.osx-x64.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.macOS.Runtime.osx.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.macOS.Sdk.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.macOS.Templates.27.0.10299-xcode27.0.nupkg
  • Microsoft.NET.Sdk.macOS.Manifest-10.0.400-preview.0.27.0.10299-xcode27.0.nupkg

tvOS

  • Microsoft.NET.Sdk.tvOS.Manifest-10.0.400-preview.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.tvOS.Ref.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.tvOS.Runtime.tvos-arm64.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.tvOS.Runtime.tvos.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.tvOS.Runtime.tvossimulator-arm64.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.tvOS.Runtime.tvossimulator-x64.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.tvOS.Sdk.net10.0_27.0.27.0.10299-xcode27.0.nupkg
  • Microsoft.tvOS.Templates.27.0.10299-xcode27.0.nupkg

Other

  • Sharpie.Bind.Tool.27.0.0.299-xcode27.0.nupkg

Pipeline on Agent
Hash: d087a04cfc27caa54ccd8a4571f6d05bac052fd8 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🚀 [CI Build #62bf0b0] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 195 tests passed 🎉

Tests counts

✅ assembly-processing: All 1 tests passed. 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. 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. 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. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download
⚠️ Tests on macOS Golden Gate (27): Tests skipped, incorrect beta version. Html Report (VSDrops) Download

Linux Build Verification

✅ Linux build succeeded

Pipeline on Agent
Hash: 62bf0b00b344d682a55037a775226272aed7bfc8 [PR build]

@dalexsoto
dalexsoto enabled auto-merge (squash) July 18, 2026 21:11
@dalexsoto
dalexsoto merged commit 5d4e056 into xcode27.0 Jul 20, 2026
55 checks passed
@dalexsoto
dalexsoto deleted the dev/alex/xc27-LinkSecurity branch July 20, 2026 10:00
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