You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[xcode27.1-net11.0] Update to Xcode 27.1 Release Candidate 1 - #26841
The iOS 27.1 simulator runtime shipped with Xcode 27.1 beta 1
(27A9269) supports only iPhone Duo. The existing selector requests
an iPhone 14 for recent iOS versions, so simctl rejects that pairing
with "Incompatible device" and SimulatorLoader throws
NoDeviceFoundException while Jenkins is still populating test tasks.
This blocked monotouch_ios, introspection, linker_ios, fsharp,
xcframework, and interdependent-binding-projects in all three attempts
of Azure DevOps build 15445909. The jobs failed before executing tests
or producing TestSummary.md, and retrying could not fix the incompatible
device/runtime selection.
Read ProductBuildVersion from the selected Xcode application's
Contents/version.plist using the existing network-disabled XML loader.
Pass that Xcode root into the selector from both Jenkins and
SimulatorLoaderFactory so both simulator discovery paths use the same
build-specific behavior. Report missing build metadata explicitly.
Select iPhone Duo only when the requested iOS runtime is 27.1 and the
Xcode build is exactly 27A9269. Preserve the existing selections for
other Xcode builds, other iOS versions, and tvOS instead of extending
this beta-specific workaround to later betas or releases.
CI failure: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=15445909
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6d6aa9a2-9f36-43e8-851d-561fe78573e3
The introspection job in Azure DevOps build 15569683 for #26839 aborts
while attempting to create an iOS 16.0 simulator on macOS 27. The runtime
is not supported on that host with Xcode 27.1 RC; the missing test summary
is a consequence of the harness abort, not a separate test failure.
Switching to a compatible runtime also exposes genuine 17.0 simulator
API discrepancies and a missing native framework dependency.
Compatible minimum simulator runtimes
------------------------------------
Raise the configured minimum iOS and tvOS simulator versions from 16.0
to 17.0 in Make.config and regenerate the checked-in SdkVersions.cs.
Apple's Xcode requirements identify 17.0 as the lowest supported
simulator version for this Xcode, rather than the previously installed
18.4 runtime. Official iOS 17.0 (21A328) and tvOS 17.0 (21J353) runtimes
were imported and successfully booted locally.
This changes the extra-runtime installation defaults and the versions
used by xharness's minimum-runtime targets. It does not raise application
deployment minima: iOS and tvOS applications still support 15.0. Current
simulator targets remain iOS 27.1 and tvOS 27.0.
Preserve binding metadata for simulator-only API discrepancies
------------------------------------------------------------
Add a shared introspection predicate for the three
CMFormatDescriptionExtensionKeys properties HasAdditionalViews,
HasLeftStereoEyeView, and HasRightStereoEyeView. Apple's headers declare
them for 17.0, but their symbols are absent from the 17.0 simulators.
Use the same predicate for field existence/non-null checks and simulator
field availability so these test surfaces agree.
Skip only PHImageRequestOptions targetHDRHeadroom getter/setter and
PHLivePhotoRequestOptions preferHDR getter/setter on 17.0 simulators.
Keep PHImageRequestOptions preferHDR covered. All exceptions require a
simulator running exactly major/minor 17.0; later runtimes and physical
devices continue to validate these APIs. Do not change public binding
availability to accommodate incorrect simulator implementations.
Load the framework that implements LARight's category
---------------------------------------------------
LARight's authorizeWithLocalizedReason:inPresentationContext:completion:
selector is implemented by a LocalAuthenticationEmbeddedUI category.
A native probe confirmed the selector is absent until that framework is
loaded. Correct native dependency gathering instead of suppressing the
selector assertion or changing the binding.
Weak-link LocalAuthenticationEmbeddedUI only for iOS SDKs 16 and newer
when the retained product assembly contains LocalAuthentication.LARight
and LocalAuthentication itself is included. Inspect the post-trim type
set so an LAContext-only application does not gain an unnecessary UI
dependency; LAPersistedRight correctly retains its LARight base.
Weak linkage preserves loading on older supported deployment targets.
Keep the product-assembly identity check out of LEGACY_TOOLS because
legacy mtouch's Application has no Profile member.
Regression coverage and RC device selection
------------------------------------------
Update the untrimmed iOS framework baseline and assert the UI dependency
is absent from the existing fully trimmed baseline. Add fully trimmed
fixtures retaining LARight, LAPersistedRight, or only LAContext, forwarding
AdditionalDefineConstants through MySimpleApp's shared project. Assert
LocalAuthentication remains linked in all three fixtures, preventing
the negative test from passing because the entire namespace disappeared.
Inspect every Mach-O slice and require exactly one LC_LOAD_WEAK_DYLIB
command for positive cases and no UI load command for negative cases.
Compare the load command using its unsigned representation.
Extend the existing iOS 27.1 iPhone Duo selection rule to Xcode RC build
27A9275, alongside beta build 27A9269. The RC runtime has the same device
restriction; retain the existing selection behavior for other versions.
These refinements address the independent rubberduck feedback from
Claude Sonnet 5.5 (max), GPT-6.1 Sol (max), and Grok 4.7 (xhigh), especially
trim-aware dependency scope and explicit weak-link/negative coverage.
Validation after the final refinements
--------------------------------------
Complete make all and make install succeeded, including legacy mtouch,
the .NET linker, assembly-preparer, and xharness.
All five targeted iOS native-link regression cases passed: existing None
and Full linking baselines plus LARight, LAPersistedRight, and LAContext
fixtures. A probe of the freshly compiled xharness assemblies verified
both 17.0 minimum targets and current RC iOS/tvOS device selection.
Freshly rebuilt full introspection suites completed successfully:
iOS 17.0: 42 passed, 0 failed, 2 ignored
iOS 27.1: 43 passed, 0 failed, 1 ignored
tvOS 17.0: 41 passed, 0 failed, 2 ignored
tvOS 27.0: 42 passed, 0 failed, 1 ignored
macOS: 33 passed, 0 failed, 1 ignored
Mac Catalyst: 40 passed, 0 failed, 3 ignored
These are completed NUnit summaries, not inferred launcher success:
241 passed, zero failed/inconclusive, and 10 existing ignored tests across
six configurations. Temporary validation simulators were removed.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 09f69be7-9ee7-4614-99c1-1bb410e8d4a5
After the Xcode 27.1 RC1 update, the .NET 11 iOS workload only accepts
27.1 as its target platform version, while libraries still defaulted to
27.0. This caused NETSDK1140 failures in referenced test libraries and
generated assembly-preparer projects, blocking the iOS test matrix.
Use 27.1 as the default for libraries too, since iOS 27.1 will include
Duo support. Keep Make.versions and SdkVersions in sync and adjust the
stable-release version assertion accordingly.
Restrict the iOS library-version exception in the stable-release scream
test to exactly 27.1, rather than accepting every version ending in .1.
Older or future versions must make the assertion fail again so that any
new library baseline requires an explicit decision.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a0652b1e-2c61-4656-b169-f2a8b4c338ea
Add iOS simulator coverage for weak-linking dependency cases
tests/dotnet/UnitTests/ProjectTest.cs:4449
💡 Testing — Frameworks.Gather adds this dependency for iOS simulators too, but these cases and the existing iOS LinkedWithNativeLibraries cases only use ios-arm64. Consider adding iossimulator-arm64 cases to verify weak linking when LARight or LAPersistedRight survives trimming, and omission when only LAContext remains. This would cover the dependency against the simulator SDK as well.
Warning: The system requirements for the hash to compare against (4c702fb�(B) are different than for the current hash. Skipping API/generator comparison.�(B
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of commits on https://github.com/dotnet/macios/tree/xcode27.1