Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
12be747
[xcode26.2] Bump to use Xcode 26.2 Beta 1 (#24184)
dalexsoto Nov 6, 2025
1f4cf14
[xcode26.2] Merge remote-tracking branch 'origin/main' into xcode26.2
dalexsoto Nov 12, 2025
de2cda6
[xcode26.2] Merge main into xcode26.2 (#24238)
dalexsoto Nov 13, 2025
1493844
[xcode26.2] Update AuthenticationServices to Xcode 26.2 Beta 1 (#24284)
dalexsoto Nov 19, 2025
75fc04c
[xcode26.2] Update to Xcode 26.2 Beta 2 (#24289)
dalexsoto Nov 19, 2025
5a1ef5e
[xcode26.2] Update AVFoundation bindings to Xcode 26.2 Beta 1 (#24285)
dalexsoto Nov 20, 2025
3397de0
[xcode26.2] Update GameKit bindings to Xcode 26.2 Beta 2 (#24302)
dalexsoto Nov 20, 2025
2ee3465
[xcode26.2] Update BrowserEngineKit bindings to Xcode 26.2 Beta 1 (#2…
dalexsoto Nov 20, 2025
76bef96
[xcode26.2] Update GameController bindings to Xcode 26.2 Beta 2 (#24297)
dalexsoto Nov 20, 2025
062eca7
[xcode26.2] Update HealthKit bindings to Xcode 26.2 Beta 2 (#24307)
dalexsoto Nov 21, 2025
0f6801c
[xcode26.2] Update PassKit bindings to Xcode 26.2 Beta 2 (#24310)
dalexsoto Nov 21, 2025
673951c
Merge remote-tracking branch main into xcode26.2
dalexsoto Nov 21, 2025
666e123
[xcode26.2] Merge main into xcode26.2 (#24318)
dalexsoto Nov 21, 2025
23e3884
[xcode26.2] Update SafariServices bindings to Xcode 26.2 Beta 2 (#24320)
dalexsoto Nov 27, 2025
1b1ba6e
[xcode26.2] Update Security bindings to Xcode 26.2 Beta 2 (#24321)
dalexsoto Dec 1, 2025
fae68b7
Merge remote-tracking branch main into xcode26.2
dalexsoto Dec 3, 2025
2856b61
[xcode26.2] Bump to Xcode 26.2 Release Candidate (#24359)
dalexsoto Dec 4, 2025
2ec5042
[xcode26.2] Merge main into xcode26.2 (#24357)
dalexsoto Dec 4, 2025
a464ff2
Merge remote-tracking branch main into xcode26.2
dalexsoto Dec 11, 2025
9ad6dac
[xcode26.2] Merge main into xcode26.2 (#24424)
dalexsoto Dec 12, 2025
9fb89d3
[xcode26.2] Update to stable version of Xcode 26.2 (#24441)
dalexsoto Dec 13, 2025
fb72e49
Merge remote-tracking branch xcode26.2 into main
dalexsoto Dec 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions Make.config
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,8 @@ NUGET_RELEASE_BRANCH=release/10.0.1xx
##
## Note that the prerelease identifier should be as short as possible, because otherwise
## the resulting package name can become too long for MSIs.
NUGET_HARDCODED_PRERELEASE_IDENTIFIER=xcode26.1
NUGET_HARDCODED_PRERELEASE_BRANCH=xcode26.1
NUGET_HARDCODED_PRERELEASE_IDENTIFIER=xcode26.2
NUGET_HARDCODED_PRERELEASE_BRANCH=xcode26.2

# compute the alphanumeric version of branch names
NUGET_RELEASE_BRANCH_ALPHANUMERIC:=$(shell export LANG=C; printf "%s" "$(NUGET_RELEASE_BRANCH)" | tr -c '[a-zA-Z0-9-]' '-')
Expand Down Expand Up @@ -201,9 +201,9 @@ MACCATALYST_NUGET_VERSION_NO_METADATA=$(MACCATALYST_NUGET_VERSION)$(NUGET_PREREL
MACCATALYST_NUGET_VERSION_FULL=$(MACCATALYST_NUGET_VERSION_NO_METADATA)$(NUGET_BUILD_METADATA)

# Xcode version should have both a major and a minor version (even if the minor version is 0)
XCODE_VERSION=26.1
XCODE_URL=https://dl.internalx.com/internal-files/xcodes/Xcode_26.1.1.xip
XCODE_DEVELOPER_ROOT=/Applications/Xcode_26.1.1.app/Contents/Developer
XCODE_VERSION=26.2
XCODE_URL=https://dl.internalx.com/internal-files/xcodes/Xcode_26.2.xip
XCODE_DEVELOPER_ROOT=/Applications/Xcode_26.2.0.app/Contents/Developer
XCODE_PRODUCT_BUILD_VERSION:=$(shell /usr/libexec/PlistBuddy -c 'Print :ProductBuildVersion' $(XCODE_DEVELOPER_ROOT)/../version.plist 2>/dev/null || echo " $(shell tput setaf 1 2>/dev/null)The required Xcode ($(XCODE_VERSION)) is not installed in $(basename $(basename $(XCODE_DEVELOPER_ROOT)))$(shell tput sgr0 2>/dev/null)" >&2)

# We define stable Xcode as the Xcode app being named like "Xcode_#.#[.#].app"
Expand Down
8 changes: 4 additions & 4 deletions Make.versions
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
# IMPORTANT: There must be *no* managed API differences unless the two first
# numbers (major.minor) changes.

IOS_NUGET_OS_VERSION=26.1
TVOS_NUGET_OS_VERSION=26.1
MACOS_NUGET_OS_VERSION=26.1
MACCATALYST_NUGET_OS_VERSION=26.1
IOS_NUGET_OS_VERSION=26.2
TVOS_NUGET_OS_VERSION=26.2
MACOS_NUGET_OS_VERSION=26.2
MACCATALYST_NUGET_OS_VERSION=26.2

# The following are the OS versions we first supported with the current .NET version.
# These versions must *not* change with minor .NET updates, only major .NET releases.
Expand Down
4 changes: 4 additions & 0 deletions builds/Versions-MacCatalyst.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
<string>18.5</string>
<string>26.0</string>
<string>26.1</string>
<string>26.2</string>
</array>
</dict>
<key>SupportedTargetPlatformVersions</key>
Expand Down Expand Up @@ -62,6 +63,7 @@
<string>18.5</string>
<string>26.0</string>
<string>26.1</string>
<string>26.2</string>
</array>
</dict>
<key>MacCatalystVersionMap</key>
Expand Down Expand Up @@ -120,6 +122,8 @@
<string>26.0</string>
<key>26.1</key>
<string>26.1</string>
<key>26.2</key>
<string>26.2</string>
</dict>
<key>RecommendedXcodeVersion</key>
<string>@XCODE_VERSION@</string>
Expand Down
2 changes: 2 additions & 0 deletions builds/Versions-iOS.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
<string>18.5</string>
<string>26.0</string>
<string>26.1</string>
<string>26.2</string>
</array>
</dict>
<key>SupportedTargetPlatformVersions</key>
Expand Down Expand Up @@ -98,6 +99,7 @@
<string>18.5</string>
<string>26.0</string>
<string>26.1</string>
<string>26.2</string>
</array>
</dict>
<key>RecommendedXcodeVersion</key>
Expand Down
2 changes: 2 additions & 0 deletions builds/Versions-macOS.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
<string>15.5</string>
<string>26.0</string>
<string>26.1</string>
<string>26.2</string>
</array>
</dict>
<key>SupportedTargetPlatformVersions</key>
Expand Down Expand Up @@ -60,6 +61,7 @@
<string>15.5</string>
<string>26.0</string>
<string>26.1</string>
<string>26.2</string>
</array>
</dict>
<key>RecommendedXcodeVersion</key>
Expand Down
2 changes: 2 additions & 0 deletions builds/Versions-tvOS.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
<string>18.5</string>
<string>26.0</string>
<string>26.1</string>
<string>26.2</string>
</array>
</dict>
<key>SupportedTargetPlatformVersions</key>
Expand Down Expand Up @@ -88,6 +89,7 @@
<string>18.5</string>
<string>26.0</string>
<string>26.1</string>
<string>26.2</string>
</array>
</dict>
<key>RecommendedXcodeVersion</key>
Expand Down
2 changes: 2 additions & 0 deletions src/AVFoundation/Enums.cs
Original file line number Diff line number Diff line change
Expand Up @@ -609,6 +609,8 @@ public enum AVAudioSessionCategoryOptions : ulong {
OverrideMutedMicrophoneInterruption = 128,
[iOS (26, 0), NoTV, NoMacCatalyst, NoMac]
BluetoothHighQualityRecording = 1uL << 19,
[iOS (26, 2), NoTV, MacCatalyst (26, 2), NoMac]
FarFieldInput = 1uL << 18,
}

/// <summary>An enumeration whose values specify the beginning and ending of an audio interruption.</summary>
Expand Down
2 changes: 2 additions & 0 deletions src/SafariServices/SSEnums.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ public enum SFErrorCode : long {
InternalError = 4,
/// <summary>The app is missing an entitlement.</summary>
MissingEntitlement = 5,
/// <summary>The maximum number of allowed attempts to load the extension has been exceeded.</summary>
MaximumAttemptsExceeded = 6,
}

[NoMac]
Expand Down
14 changes: 14 additions & 0 deletions src/Security/SecSharedCredential.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ namespace Security {

public static partial class SecSharedCredential {

[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("macos")]
[UnsupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("ios26.2")]
[ObsoletedOSPlatform ("maccatalyst26.2")]
[ObsoletedOSPlatform ("macos26.2")]
[DllImport (Constants.SecurityLibrary)]
unsafe extern static void SecAddSharedWebCredential (IntPtr /* CFStringRef */ fqdn, IntPtr /* CFStringRef */ account, IntPtr /* CFStringRef */ password,
BlockLiteral* /* void (^completionHandler)( CFErrorRef error) ) */ completionHandler);
Expand All @@ -34,6 +41,13 @@ internal static unsafe void Invoke (IntPtr block, IntPtr obj)
/// <summary>To be added.</summary>
/// <remarks>To be added.</remarks>
[BindingImpl (BindingImplOptions.Optimizable)]
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("macos")]
[UnsupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("ios26.2")]
[ObsoletedOSPlatform ("maccatalyst26.2")]
[ObsoletedOSPlatform ("macos26.2")]
public static void AddSharedWebCredential (string domainName, string account, string password, Action<NSError> handler)
{
if (domainName is null)
Expand Down
143 changes: 143 additions & 0 deletions src/authenticationservices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ public enum ASCredentialServiceIdentifierType : long {
Domain,
/// <summary>The identifier specifies a URL.</summary>
Url,
/// <summary>The identifier specifies an app.</summary>
[MacCatalyst (26, 2), iOS (26, 2), Mac (26, 2)]
App,
}

/// <summary>Enumerates errors associated with a <see cref="AuthenticationServices.ASWebAuthenticationSession" />.</summary>
Expand Down Expand Up @@ -364,6 +367,16 @@ interface ASCredentialProviderExtensionContext {
[NoTV, NoMac, iOS (18, 0), NoMacCatalyst]
[Export ("completeRequestWithTextToInsert:completionHandler:")]
void CompleteRequest (string textToInsert, [NullAllowed] Action<bool> completionHandler);

[Async]
[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
[Export ("completeSavePasswordRequestWithCompletionHandler:")]
void CompleteSavePasswordRequest ([NullAllowed] Action<bool> completionHandler);

[Async]
[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
[Export ("completeGeneratePasswordRequestWithResults:completionHandler:")]
void CompleteGeneratePasswordRequest (ASGeneratedPassword [] results, [NullAllowed] Action<bool> completionHandler);
}

/// <summary>Holds the identification for a credential service.</summary>
Expand All @@ -390,6 +403,24 @@ interface ASCredentialServiceIdentifier : NSCopying, NSSecureCoding {
/// <remarks>To be added.</remarks>
[Export ("type")]
ASCredentialServiceIdentifierType Type { get; }

/// <summary>
/// Constructs a new <see cref="AuthenticationServices.ASCredentialServiceIdentifier" /> with the specified <paramref name="identifier" />, of the specified <paramref name="type" />, and with the specified <paramref name="displayName" />.
/// </summary>
/// <param name="identifier">To be added.</param>
/// <param name="type">To be added.</param>
/// <param name="displayName">To be added.</param>
/// <remarks>To be added.</remarks>
[NoTV, Mac (26, 2), iOS (26, 2), MacCatalyst (26, 2)]
[Export ("initWithIdentifier:type:displayName:")]
NativeHandle Constructor (string identifier, ASCredentialServiceIdentifierType type, string displayName);

/// <summary>Gets the display name.</summary>
/// <value>To be added.</value>
/// <remarks>To be added.</remarks>
[NoTV, Mac (26, 2), iOS (26, 2), MacCatalyst (26, 2)]
[NullAllowed, Export ("displayName")]
string DisplayName { get; }
}

/// <summary>Associates a <see cref="AuthenticationServices.ASPasswordCredentialIdentity.User" /> string with a record in the developer's credential database.</summary>
Expand Down Expand Up @@ -525,6 +556,22 @@ interface ASCredentialProviderViewController {
[iOS (26, 0), Mac (26, 0), MacCatalyst (26, 0), NoTV]
[Export ("reportUnusedPasswordCredentialForDomain:userName:")]
void ReportUnusedPasswordCredential (string domain, string userName);

[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
[Export ("performSavePasswordRequestWithoutUserInteractionIfPossible:")]
void PerformSavePasswordRequestWithoutUserInteractionIfPossible (ASSavePasswordRequest savePasswordRequest);

[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
[Export ("prepareInterfaceForSavePasswordRequest:")]
void PrepareInterfaceForSavePasswordRequest (ASSavePasswordRequest savePasswordRequest);

[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
[Export ("performGeneratePasswordsRequestWithoutUserInteraction:")]
void PerformGeneratePasswordsRequestWithoutUserInteraction (ASGeneratePasswordsRequest generatePasswordsRequest);

[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
[Export ("prepareInterfaceForGeneratePasswordsRequest:")]
void PrepareInterfaceForGeneratePasswordsRequest (ASGeneratePasswordsRequest generatePasswordsRequest);
}

/// <summary>Associates a username and a password.</summary>
Expand Down Expand Up @@ -3026,4 +3073,100 @@ interface ASAuthorizationProviderExtensionSigningAlgorithm222 {
[Field ("ASAuthorizationProviderExtensionSigningAlgorithmEd25519")]
NSNumber Ed25519 { get; }
}

[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
[Native]
public enum ASSavePasswordRequestEvent : long {
UserInitiated,
FormDidDisappear,
GeneratedPasswordFilled
}


[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
enum ASGeneratedPasswordKind {
[Field ("ASGeneratedPasswordKindAlphanumeric")]
Alphanumeric,
[Field ("ASGeneratedPasswordKindPassphrase")]
Passphrase,
[Field ("ASGeneratedPasswordKindStrong")]
Strong,
}

[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface ASGeneratedPassword : NSCopying, NSSecureCoding {

[BindAs (typeof (ASGeneratedPasswordKind))]
[Export ("kind")]
NSString Kind { get; }

[Export ("localizedName")]
string LocalizedName { get; }

[Export ("value")]
string Value { get; }

[Export ("initWithKind:value:")]
NativeHandle Constructor ([BindAs (typeof (ASGeneratedPasswordKind))] NSString kind, string value);
}

[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface ASGeneratePasswordsRequest : NSCopying, NSSecureCoding {

[Export ("serviceIdentifier")]
ASCredentialServiceIdentifier ServiceIdentifier { get; }

[NullAllowed, Export ("passwordFieldPasswordRules")]
string PasswordFieldPasswordRules { get; }

[NullAllowed, Export ("confirmPasswordFieldPasswordRules")]
string ConfirmPasswordFieldPasswordRules { get; }

[NullAllowed, Export ("passwordRulesFromQuirks")]
string PasswordRulesFromQuirks { get; }

[Export ("initWithServiceIdentifier:passwordFieldPasswordRules:confirmPasswordFieldPasswordRules:passwordRulesFromQuirks:")]
NativeHandle Constructor (ASCredentialServiceIdentifier serviceIdentifier, [NullAllowed] string passwordFieldPasswordRules, [NullAllowed] string confirmPasswordFieldPasswordRules, [NullAllowed] string passwordRulesFromQuirks);
}

[NoTV, NoMac, iOS (26, 2), MacCatalyst (26, 2)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface ASSavePasswordRequest : NSCopying, NSSecureCoding {

[Export ("serviceIdentifier")]
ASCredentialServiceIdentifier ServiceIdentifier { get; }

[Export ("credential")]
ASPasswordCredential Credential { get; }

[NullAllowed, Export ("title")]
string Title { get; }

[Export ("sessionID")]
string SessionId { get; }

[Export ("event")]
ASSavePasswordRequestEvent Event { get; }

[BindAs (typeof (ASGeneratedPasswordKind))]
[NullAllowed, Export ("passwordKind")]
NSString PasswordKind { get; }

[Export ("initWithServiceIdentifier:credential:sessionID:event:")]
NativeHandle Constructor (ASCredentialServiceIdentifier serviceIdentifier, ASPasswordCredential credential, string sessionId, ASSavePasswordRequestEvent @event);

[Export ("initWithServiceIdentifier:credential:title:sessionID:event:")]
NativeHandle Constructor (ASCredentialServiceIdentifier serviceIdentifier, ASPasswordCredential credential, [NullAllowed] string title, string sessionId, ASSavePasswordRequestEvent @event);

[Export ("initWithServiceIdentifier:credential:sessionID:event:passwordKind:")]
NativeHandle Constructor (ASCredentialServiceIdentifier serviceIdentifier, ASPasswordCredential credential, string sessionId, ASSavePasswordRequestEvent @event, [NullAllowed][BindAs (typeof (ASGeneratedPasswordKind))] NSString passwordKind);

[Export ("initWithServiceIdentifier:credential:title:sessionID:event:passwordKind:")]
NativeHandle Constructor (ASCredentialServiceIdentifier serviceIdentifier, ASPasswordCredential credential, [NullAllowed] string title, string sessionId, ASSavePasswordRequestEvent @event, [NullAllowed][BindAs (typeof (ASGeneratedPasswordKind))] NSString passwordKind);
}
}
20 changes: 20 additions & 0 deletions src/avfoundation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4325,6 +4325,10 @@ enum AVAudioSessionMode {
[MacCatalyst (26, 0), NoTV, NoMac, iOS (26, 0)]
[Field ("AVAudioSessionModeShortFormVideo")]
ShortFormVideo,

[MacCatalyst (26, 2), NoTV, NoMac, iOS (26, 2)]
[Field ("AVAudioSessionModeDualRoute")]
DualRoute,
}

[NoMac]
Expand Down Expand Up @@ -18681,6 +18685,18 @@ that the camera can focus and one representing the furthest
[TV (26, 0), MacCatalyst (26, 0), Mac (26, 0), iOS (26, 0)]
[Export ("cameraLensSmudgeDetectionStatus")]
AVCaptureCameraLensSmudgeDetectionStatus CameraLensSmudgeDetectionStatus { get; }

// From the AVCaptureDeviceEdgeLight (AVCaptureDevice) category

[TV (26, 2), MacCatalyst (26, 2), Mac (26, 2), iOS (26, 2)]
[Static]
[Export ("edgeLightEnabled")]
bool EdgeLightEnabled { [Bind ("isEdgeLightEnabled")] get; }

[TV (26, 2), MacCatalyst (26, 2), Mac (26, 2), iOS (26, 2)]
[Static]
[Export ("edgeLightActive")]
bool EdgeLightActive { [Bind ("isEdgeLightActive")] get; }
}

[TV (26, 0), MacCatalyst (26, 0), Mac (26, 0), iOS (26, 0)]
Expand Down Expand Up @@ -19087,6 +19103,10 @@ interface AVCaptureDeviceFormat {
[NoTV, NoMacCatalyst, NoMac, iOS (26, 0)]
[Export ("smartFramingSupported")]
bool SmartFramingSupported { [Bind ("isSmartFramingSupported")] get; }

[TV (26, 2), MacCatalyst (26, 2), Mac (26, 2), iOS (26, 2)]
[Export ("edgeLightSupported")]
bool EdgeLightSupported { [Bind ("isEdgeLightSupported")] get; }
}

[TV (26, 0), MacCatalyst (26, 0), Mac (26, 0), iOS (26, 0)]
Expand Down
Loading
Loading