Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 570
Comparing changes
Open a pull request
base repository: dotnet/macios
base: main
head repository: dotnet/macios
compare: xcode27.0
- 20 commits
- 658 files changed
- 7 contributors
Commits on Jun 15, 2026
-
[net11.0] Bump min macOS to 14.0, and iOS/tvOS to 13.0. Fixes #23784. (…
Configuration menu - View commit details
-
Copy full SHA for f2f1769 - Browse repository at this point
Copy the full SHA f2f1769View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0810849 - Browse repository at this point
Copy the full SHA 0810849View commit details
Commits on Jun 16, 2026
-
1
Configuration menu - View commit details
-
Copy full SHA for 263e4a0 - Browse repository at this point
Copy the full SHA 263e4a0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 36b315c - Browse repository at this point
Copy the full SHA 36b315cView commit details -
[devops] Min macOS version os macOS 14, so don't try to test on earli…
…er versions. (cherry picked from commit 7dbe221)
Configuration menu - View commit details
-
Copy full SHA for 6d1a847 - Browse repository at this point
Copy the full SHA 6d1a847View commit details
Commits on Jun 17, 2026
-
6
Configuration menu - View commit details
-
Copy full SHA for 24a74a7 - Browse repository at this point
Copy the full SHA 24a74a7View commit details
Commits on Jun 18, 2026
-
[xcode27.0] Baseline update for Xcode 27.0 Beta 1 (v2) (#25729)
Baseline update to **Xcode 27.0 Beta 1**, and raise the iOS/tvOS minimum deployment target to **15.0**. This is a follow-up (v2) to #25665, brought in commit-by-commit and with the additional fixes needed to keep CI green. ## Xcode 27.0 Beta 1 bump * `XCODE_VERSION` 26.5 → 27.0, plus `XCODE_URL` / `XCODE_DEVELOPER_ROOT` (`Make.config`). * `*_NUGET_OS_VERSION` 26.5 → 27.0 for iOS/tvOS/macOS/Mac Catalyst (`Make.versions`). * `tools/common/SdkVersions.cs`, `builds/Versions-*.plist.in`, `eng/Version.Details.{props,xml}`, `mk/xamarin.mk`, the project templates, and the DevOps variables updated to match. ## Raise the iOS/tvOS minimum deployment target to 15.0 `DOTNET_MIN_IOS_SDK_VERSION` / `DOTNET_MIN_TVOS_SDK_VERSION` 13.0 → 15.0. This has a few cascading consequences: * **Removed redundant availability attributes.** Every hand-written `[SupportedOSPlatform ("ios<ver>")]` / `("tvos<ver>")` whose version is `<= 15.0` became redundant in the manual binding sources. Unlike the attributes bgen generates (which it strips automatically below the platform minimum), these literal attributes are emitted verbatim and made the cecil `ApiAvailabilityTest.AttributeConsistency` test fail. They've been stripped down to the bare platform marker (e.g. `[SupportedOSPlatform ("ios13.0")]` → `[SupportedOSPlatform ("ios")]`), leaving versions `> 15.0` and the macOS/Mac Catalyst attributes untouched. * **Minimum test simulator raised to 16.0.** Xcode 27 dropped the iOS/tvOS 15.x simulator runtimes, so the introspection tests now run against the 16.0 simulator as the minimum (see below). ## Simulator infrastructure for Xcode 27 * **Download arm64 simulators instead of universal ones.** Xcode 27 no longer supports x64 simulators, so the universal variant is pointless; we now explicitly request `-architectureVariant arm64` and drop the x64-detection logic (`system-dependencies.sh`). * **Updated simulator device types.** Xcode 27 removed several device types (e.g. `iPhone-6s`, `iPhone-SE` 1st gen, `Apple-TV-1080p`); the simulator/device selection now uses still-supported types (`tests/xharness/SimulatorLoaderFactory.cs`, `tests/mtouch/MLaunchTool.cs`, `tests/xharness/Jenkins/TestVariationsFactory.cs`). ## Introspection simulator-availability fixes Running against the 16.0 simulator surfaced several APIs declared available at an early version that aren't actually present in those older simulator runtimes (they ship on device and/or in newer simulators only). The affected APIs were annotated with the appropriate simulator-availability attributes, verified against the actual simulator runtime binaries with `nm`: * **SafetyKit** Crash Detection (`SACrashDetectionEvent` / `SACrashDetectionManager` / `SAEmergencyResponseManager`) → `[SupportedSimulator ("ios16.4")]`. * **CoreMedia** HDR10+ (`kCMSampleAttachmentKey_HDR10PlusPerFrameData`, property and smart-enum member) → `[SupportedSimulator ("ios16.1")]` + `("tvos16.1")`. * **tvOS Metal** acceleration-structure / mesh / rasterization types → `[SupportedSimulator ("tvos16.1")]`. * **Metal** `MTLIOCompressionContext*` P/Invokes (present in 16.0, removed from 16.4) → versioned `[UnsupportedSimulator ("ios16.4")]` + `("tvos16.4")`. To make the versioned `[UnsupportedSimulator]` meaningful: * `tests/common/PlatformInfo.IsAvailableInSimulator` now treats a versioned `[UnsupportedSimulator ("ios18.0")]` as "unavailable starting with that simulator version" (mirroring the existing versioned `[SupportedSimulator]` handling). A bare platform name keeps its previous "unavailable on every simulator version" meaning. * `tools/common/DerivedLinkContext` now prefix-matches `[UnsupportedSimulator]` platform names and conservatively skips the simulator-inlining optimization for versioned entries, falling back to the (already weak + `dlsym`-guarded) runtime symbol lookup. Validated by running introspection on iOS 16.0/27.0 and tvOS 16.0/27.0 simulators — all four configurations pass. ## Test & tooling fixes to keep CI green * **xtro-sharpie**: regenerated the API annotations against the new SDK. * **`TargetPlatformVersionLibrary` stays at 26.0.** The default *library* TPV is the first OS version of the current major .NET (.NET 10 → 26.0) and must not change on minor/Xcode bumps; only the *executable* default follows the latest (→ 27.0). The `MajorTargetPlatformVersion` unit test was corrected to expect library major 26 / executable major 27 (`tests/dotnet/UnitTests/ApplePlatformExtensions.cs`). * Misc test adjustments: `tests/cecil-tests/Documentation.KnownFailures.txt`, `tests/common/TestRuntime.cs`, `tests/bgen/BGenTests.cs`, `tests/sharpie/…/SdkDbTest.cs`, `tests/msbuild/…/ACToolTaskTest.cs`. * Auto-formatted source and trailing-whitespace cleanup. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: GitHub Actions Autoformatter <github-actions-autoformatter@xamarin.com> Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1Configuration menu - View commit details
-
Copy full SHA for 22c8c81 - Browse repository at this point
Copy the full SHA 22c8c81View commit details -
Configuration menu - View commit details
-
Copy full SHA for f039d4b - Browse repository at this point
Copy the full SHA f039d4bView commit details -
6
Configuration menu - View commit details
-
Copy full SHA for bd8018e - Browse repository at this point
Copy the full SHA bd8018eView commit details
Commits on Jun 19, 2026
-
[dotnet] Add new mlaunch 1.1.127 assemblies to SignList.xml (#25745)
The mlaunch bump from 1.1.113 to 1.1.127 (Xcode 27.0 Beta 1 baseline, #25729) added new assemblies to mlaunch.app/Contents/MonoBundle: the Microsoft.Testing.Platform managed assembly + localized satellites, and a few architecture-specific (R2R) runtime assemblies under .xamarin/<rid>/ (System.ComponentModel, System.Private.Xml.Linq, System.Text.Encodings.Web, System.Threading and System.Xml.Linq). These new files are not classified in SignList.xml, so the MicroBuild signing step in the "Prepare .NET Release" stage fails with "unknown files which should be signed" (HandleUnmappedFiles=fail). Add the 7 new assemblies as FirstParty so they are signed, consistent with the rest of the mlaunch.app MonoBundle content. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
9Configuration menu - View commit details
-
Copy full SHA for e03c1c7 - Browse repository at this point
Copy the full SHA e03c1c7View commit details
Commits on Jun 22, 2026
-
Configuration menu - View commit details
-
Copy full SHA for d2a641f - Browse repository at this point
Copy the full SHA d2a641fView commit details
Commits on Jun 23, 2026
-
🤖 Merge 'main' => 'xcode27.0' (#25775)
Automated merge of `main` into `xcode27.0`. Created by the code-radiator workflow. Supersedes #25728 which was closed due to a manual merge that occurred after the PR was created. > Generated by [Code Radiator](https://github.com/dotnet/macios/actions/runs/27982144344) · 949.7 AIC · ⌖ 152.3 AIC · ⊞ 33.5K · [◷](https://github.com/search?q=repo%3Adotnet%2Fmacios+%22gh-aw-workflow-id%3A+code-radiator%22&type=pullrequests) <!-- gh-aw-agentic-workflow: Code Radiator, engine: copilot, version: 1.0.60, model: claude-sonnet-4.5, id: 27982144344, workflow_id: code-radiator, run: https://github.com/dotnet/macios/actions/runs/27982144344 --> <!-- gh-aw-workflow-id: code-radiator --> <!-- gh-aw-workflow-call-id: dotnet/macios/code-radiator -->
6Configuration menu - View commit details
-
Copy full SHA for 3cb20df - Browse repository at this point
Copy the full SHA 3cb20dfView commit details -
Configuration menu - View commit details
-
Copy full SHA for d52b839 - Browse repository at this point
Copy the full SHA d52b839View commit details
Commits on Jun 24, 2026
-
[xcode27.0] Update to Xcode 27.0 Beta 2 and make sharpie aware of any…
…AppleOS (#25786) This PR updates the `xcode27.0` branch to **Xcode 27.0 Beta 2** and teaches Objective Sharpie and xtro-sharpie about the new `anyAppleOS` availability meta-platform introduced in the Xcode 27 SDK. ## Xcode 27.0 Beta 2 - Bump `XCODE_URL` and `XCODE_DEVELOPER_ROOT` in `Make.config` to Xcode 27.0 Beta 2. - Regenerate the xtro-sharpie API baselines (`tests/xtro-sharpie/api-annotations-dotnet/*.todo` / `*.ignore`) to match the Beta 2 SDK. ## `anyAppleOS` availability support The Xcode 27 SDK introduces a new clang availability meta-platform, `anyAppleOS` (used as `API_AVAILABLE(anyappleos(x))`), meaning "available on every Apple OS". It's already used by `Accessibility.framework` (`AXSettings.h`). Sharpie parses the SDK headers with upstream llvm.org libclang, which doesn't understand `anyAppleOS` and reports it as an unknown platform. This made `AUTO_SANITIZE=1 make all` fail in `tests/xtro-sharpie` with: ``` SHARPIE0000: An unexpected error occurred: Unsupported clang availability platform: 'anyAppleOS' ``` Changes: - **`AvailabilityBaseAttribute`** now expands `anyAppleOS` into the Apple platforms macios ships (iOS, macOS, Mac Catalyst, tvOS), all sharing the same version, instead of throwing. `GetPlatforms` is an iterator so the common path no longer allocates a single-element array per availability attribute. - **`ObjectiveCBinder`** suppresses the spurious "unknown platform 'anyAppleOS'" clang warning, since we now understand the platform ourselves. - The **xtro classifier** (`Helpers.IsAvailable`/`IsDeprecated`) treats `anyappleos` as the platform currently being checked, so APIs decorated with it are correctly considered available on every platform. - Added a Sharpie on-disk test (`tests/sharpie/Tests/AvailabilityAnyAppleOS.h`). ## Introspection In Xcode 27, a few CarPlay types (`CPButton`, `CPContactCallButton`, `CPContactDirectionsButton`, `CPContactMessageButton`, `CPTravelEstimates`) gained an undocumented `NSCopying` conformance that isn't declared in the public headers. This intermittently failed `iOSApiProtocolTest.Copying` (the conformance is only detected when the CarPlay framework happens to be loaded in the simulator). These types are added to the existing `NSCopying` "conformance not in headers" skip list, matching how the same types are already handled for `NSCoding` and `NSSecureCoding`. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
8Configuration menu - View commit details
-
Copy full SHA for fecf9e0 - Browse repository at this point
Copy the full SHA fecf9e0View commit details -
🤖 Merge 'main' => 'xcode27.0' (#25789)
Automated merge of `main` into `xcode27.0`. Created by the code-radiator workflow. > Generated by [Code Radiator](https://github.com/dotnet/macios/actions/runs/28054587077) · 905.7 AIC · ⌖ 120.2 AIC · ⊞ 33.5K · [◷](https://github.com/search?q=repo%3Adotnet%2Fmacios+%22gh-aw-workflow-id%3A+code-radiator%22&type=pullrequests) <!-- gh-aw-agentic-workflow: Code Radiator, engine: copilot, version: 1.0.60, model: claude-sonnet-4.5, id: 28054587077, workflow_id: code-radiator, run: https://github.com/dotnet/macios/actions/runs/28054587077 --> <!-- gh-aw-workflow-id: code-radiator --> <!-- gh-aw-workflow-call-id: dotnet/macios/code-radiator -->
6Configuration menu - View commit details
-
Copy full SHA for 61b3932 - Browse repository at this point
Copy the full SHA 61b3932View commit details -
[devops] Run macOS tests on macOS Golden Gate 🌉 (#25784)
--------- Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Alex Soto <alex@soto.dev> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
6Configuration menu - View commit details
-
Copy full SHA for 9eab067 - Browse repository at this point
Copy the full SHA 9eab067View commit details -
Configuration menu - View commit details
-
Copy full SHA for a1dc308 - Browse repository at this point
Copy the full SHA a1dc308View commit details
Commits on Jun 25, 2026
-
🤖 Merge 'main' => 'xcode27.0' (#25810)
> [!CAUTION] > Protected files were modified in this change. > This pull request is in `request_review` mode and requires explicit human scrutiny before merge. > > Protected files: `README.md` Automated merge of `main` into `xcode27.0`. Created by the code-radiator workflow. No conflicts - clean merge. > Generated by [Code Radiator](https://github.com/dotnet/macios/actions/runs/28126888934) · 151 AIC · ⌖ 27.9 AIC · ⊞ 8.4K · [◷](https://github.com/search?q=repo%3Adotnet%2Fmacios+%22gh-aw-workflow-id%3A+code-radiator%22&type=pullrequests) <!-- gh-aw-agentic-workflow: Code Radiator, engine: copilot, version: 1.0.63, model: claude-sonnet-4.5, id: 28126888934, workflow_id: code-radiator, run: https://github.com/dotnet/macios/actions/runs/28126888934 --> <!-- gh-aw-workflow-id: code-radiator --> <!-- gh-aw-workflow-call-id: dotnet/macios/code-radiator -->
6Configuration menu - View commit details
-
Copy full SHA for 8a9f8b9 - Browse repository at this point
Copy the full SHA 8a9f8b9View commit details -
[ARKit] Bind new Xcode 27 APIs and deprecations (#25809)
Resolve the ARKit xtro todos (iOS-ARKit.todo, iOS-ARKitCore.todo and MacCatalyst-ARKit.todo) for Xcode 27: * Bind new iOS 27 members: ARFrame.MetadataObjects, the TrackingObjects property on ARWorldTrackingConfiguration and ARGeoTrackingConfiguration, ARFaceTrackingConfiguration.EnvironmentTexturingEnabled and ARReferenceObject.UsdzFile. * Add ARTrackable conformance to ARObjectAnchor, which resolves both the missing protocol conformance and the new isTracked selector. * Mark the legacy ARReferenceObject members (resourceGroupName, rawFeaturePoints, referenceObjectsInGroupNamed:bundle:, exportObjectToURL:previewImage:error:, referenceObjectByApplyingTransform:, referenceObjectByMergingObject:error:, the ARReferenceObjectArchiveExtension field) and ARSession.CreateReferenceObject as [Deprecated] in iOS 27. * ARKit isn't built for Mac Catalyst, so the new selectors can't be bound there; add them to MacCatalyst-ARKit.ignore (sorted) and delete the now resolved todo files. * Add ARObjectAnchor introspection version-gates for its iOS 27 ARTrackable conformance and isTracked selector (mirroring the ARImageAnchor pattern), and register the new undocumented members in the cecil documentation known-failures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
5Configuration menu - View commit details
-
Copy full SHA for 01c8e70 - Browse repository at this point
Copy the full SHA 01c8e70View commit details -
[AudioToolbox] Bind new Xcode 27 AudioToolbox APIs. (#25811)
Bind the missing AudioToolbox APIs reported by xtro-sharpie: * AUReverbRoomType.OutdoorGeneral (kReverbRoomType_OutdoorGeneral = 24) on iOS, tvOS, macOS and Mac Catalyst. * AUHeadTrackingBinauralRenderer (an AUAudioUnit subclass) and its three readonly properties (HeadTracking, Disabled, DeviceUID) on iOS. AUHeadTrackingBinauralRenderer re-exposes the base AUAudioUnit designated initializer as an [Internal] init plus a manual Create factory (guarded for iOS-only), mirroring AVCaptureEventSound, so it satisfies both the introspection DesignatedInitializer test and the cecil NoConstructorsWithOutErrorArguments test. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
6Configuration menu - View commit details
-
Copy full SHA for 2a22784 - Browse repository at this point
Copy the full SHA 2a22784View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...xcode27.0
