Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
885d70d
[Foundation] Fix nullability in NSLocale. (#24433)
rolfbjarne Dec 15, 2025
391072e
[Foundation] Fix nullability in NSKeyedArchiver. (#24436)
rolfbjarne Dec 15, 2025
cf7f48f
[Foundation] Fix nullability in NSMutableSet<TKey>. (#24422)
rolfbjarne Dec 15, 2025
5129306
[Foundation] Fix nullability in NSMutableAttributedString. (#24431)
rolfbjarne Dec 15, 2025
2a471e5
[Foundation] Fix nullability in NSConnection. (#24438)
rolfbjarne Dec 15, 2025
05c9830
[Foundation] Fix nullability in NSMutableDictionary. (#24428)
rolfbjarne Dec 15, 2025
6ff086f
[msbuild] Pass the XamarinTask instance along when calling Compressio…
rolfbjarne Dec 15, 2025
11ab0d8
[main] Update dependencies from dotnet/dotnet (#24443)
dotnet-maestro[bot] Dec 15, 2025
86004a9
[Foundation] Fix nullability in NSLayoutConstraint. (#24434)
rolfbjarne Dec 15, 2025
82653a4
[Foundation] Fix nullability in NSMutableSet. (#24419)
rolfbjarne Dec 15, 2025
5091d87
[src] Be quiet when running AppleDocReader. (#24452)
rolfbjarne Dec 16, 2025
1e389e5
[main] Update dependencies from dotnet/xharness (#24453)
dotnet-maestro[bot] Dec 16, 2025
3b4905b
[main] Update dependencies from dotnet/macios (#24460)
dotnet-maestro[bot] Dec 17, 2025
58c40d5
[docs] The MAUI wiki no longer needs updates when we release new vers…
rolfbjarne Dec 18, 2025
5cf3775
[Foundation] Fix nullability in NSDictionary<TKey,TValue>. (#24457)
rolfbjarne Dec 18, 2025
25458fd
[docs] Move the docs about ReferenceNativeSymbol in the correct file.…
rolfbjarne Dec 18, 2025
1477706
[msbuild] Remove the SdkBinPath and SdkUsrPath properties. (#24450)
rolfbjarne Dec 18, 2025
da15dbc
[dotnet] Fix computing the app bundle location for 'dotnet run' for d…
rolfbjarne Dec 19, 2025
90db3cc
[docs] Add a step to API docs publishing about flipping monikers from…
rolfbjarne Dec 19, 2025
63587ba
[apidiff] Update reference/stable versions to .NET 10 / Xcode 26.2. (…
rolfbjarne Dec 19, 2025
f94a28e
Localized file check-in by OneLocBuild Task: Build definition ID 1441…
vs-mobiletools-engineering-service2 Dec 29, 2025
f5dcaae
[Foundation] Fix nullability in NSMutableDictionary<TKey, TValue>. (#…
rolfbjarne Dec 29, 2025
07b359c
[docs] Update sample snippet with a suggestion from Copilot. (#24466)
rolfbjarne Dec 30, 2025
9b64658
[AuthenticationServices] ASAuthorizationPlatformPublicKeyCredentialAs…
rolfbjarne Jan 5, 2026
70046dc
[Foundation] Fix nullability in NSDictionary. (#24478)
rolfbjarne Jan 5, 2026
526a773
[docs] Correct iOS to iOS and tvOS in build properties (#24485)
igormoiseev Jan 6, 2026
6ee9375
[Foundation] Fix nullability in NSObject. (#24481)
rolfbjarne Jan 8, 2026
c854497
[main] Update dependencies from dotnet/xharness (#24475)
dotnet-maestro[bot] Jan 12, 2026
bd2ad8a
[src] Remove the NO_SYSTEM_DRAWING conditional compilation define, it…
rolfbjarne Jan 12, 2026
b3c13b7
[main] Update dependencies from dotnet/xharness (#24499)
dotnet-maestro[bot] Jan 14, 2026
e691c86
[tests] BitmapContextTest.AdaptiveTest to not crash. (#24500)
rolfbjarne Jan 14, 2026
22e9dc9
[SceneKit] Distribute nullability for a few properties. (#24496)
rolfbjarne Jan 14, 2026
5f14a13
[GLKit] Fix nullability for GLKMesh.FromAssets. (#24498)
rolfbjarne Jan 14, 2026
ae6a664
[src] Fix make quietness inside templates. (#24505)
rolfbjarne Jan 14, 2026
accb715
[Foundation] Improve NSArray.FromIntPtrs slightly. (#24501)
rolfbjarne Jan 14, 2026
2405c0e
[tests] Use existing 'SecIdentity.Import' API instead of manually try…
rolfbjarne Jan 14, 2026
5500000
[main] Update dependencies from dotnet/xharness (#24507)
dotnet-maestro[bot] Jan 15, 2026
922a9b4
[CarPlay] Remove extraneous [Deprecated] on a CPGridButton ctor. Fixe…
rolfbjarne Jan 15, 2026
0e35ba8
[tools] Improve the Execution class. (#24503)
rolfbjarne Jan 15, 2026
9e44e9d
[msbuild] Be explicit about string comparisons. (#24513)
rolfbjarne Jan 15, 2026
e04fa82
[Foundation] Improve NSArray.FromNativeObjects slightly. (#24509)
rolfbjarne Jan 16, 2026
af05b67
[msbuild] Simplify DetectSdkLocation to not detect whether we're buil…
rolfbjarne Jan 16, 2026
e458777
[net11.0] Merge main into net11.0.
rolfbjarne Jan 16, 2026
289b537
[tests] Update SizeTestApp's expected sizes.
rolfbjarne Jan 16, 2026
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
8 changes: 4 additions & 4 deletions Make.config
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ include $(TOP)/Make.versions
# The value is taken from the name + version of the Ref pack.
# Example: given the Ref pack "Microsoft.iOS.Ref.net8.0_17.5" with the version "17.5.8030", the value
# to write here would be the part after "Microsoft.iOS.Ref." + "/" + version: "net8.0_17.5/17.5.8030"
STABLE_NUGET_VERSION_iOS=net10.0_26.1/26.1.10494
STABLE_NUGET_VERSION_tvOS=net10.0_26.1/26.1.10494
STABLE_NUGET_VERSION_MacCatalyst=net10.0_26.1/26.1.10494
STABLE_NUGET_VERSION_macOS=net10.0_26.1/26.1.10494
STABLE_NUGET_VERSION_iOS=net10.0_26.2/26.2.10191
STABLE_NUGET_VERSION_tvOS=net10.0_26.2/26.2.10191
STABLE_NUGET_VERSION_MacCatalyst=net10.0_26.2/26.2.10191
STABLE_NUGET_VERSION_macOS=net10.0_26.2/26.2.10191

PACKAGE_HEAD_REV=$(shell git rev-parse HEAD)

Expand Down
3 changes: 1 addition & 2 deletions docs/ReleaseCheckList.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,7 @@ This happens after the stable version of Xcode has been released and the `xcodeX
* [ ] Write release notes.
* [ ] Publish NuGets to nuget.org.
* [ ] Publish release notes.
* [ ] Update https://github.com/dotnet/maui/wiki/Release-Versions
* [ ] Update API diff (the `STABLE_NUGET_VERSION_*` variables in `Make.config`). Can only be done after the NuGets have been published to nuget.org.
* [ ] Update API diff (the `STABLE_NUGET_VERSION_*` variables in `Make.config`) for the `main` branch. Can only be done after the NuGets have been published to nuget.org.
* [ ] Update docs by executing `docs/sync-mobile-docs.sh`. Beware if docs were modified in the [docs-mobile](https://github.com/dotnet/docs-mobile) repository by somebody else, any such changes will have to be copied back first.
* [ ] Update API / reference docs. See [update-api-docs.md](https://github.com/dotnet/macios/blob/main/docs/update-api-docs.md) for instructions.
* [ ] Make sure all items in the milestone for the current release have been closed.
Expand Down
61 changes: 0 additions & 61 deletions docs/api/Foundation/NSObjectFlag.xml

This file was deleted.

28 changes: 0 additions & 28 deletions docs/api/Foundation/NSObservedChange.xml

This file was deleted.

45 changes: 0 additions & 45 deletions docs/api/UIKit/NSLayoutConstraint.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,25 +31,6 @@ var tconstraint1 = NSLayoutConstraint.Create (toolbar, NSLayoutAttribute.Width,
</remarks>
<related type="externalDocumentation" href="https://developer.apple.com/library/ios/documentation/AppKit/Reference/NSLayoutConstraint_Class/index.html">Apple documentation for <c>NSLayoutConstraint</c></related>
</Docs>
<Docs DocId="M:UIKit.NSLayoutConstraint.FromVisualFormat(System.String,UIKit.NSLayoutFormatOptions,System.Object[])">
<param name="format">Visual format to use to create the constraints.</param>
<param name="formatOptions">options.</param>
<param name="viewsAndMetrics">
<para>Pairs of names and values. The names should be strings (or NSStrings) and the values should be either UIViews, numbers (any C# number or NSNumber) or <see cref="ObjCRuntime.INativeObject" /> instances that are suitable to be passed to the underlying engine. </para>
<para>
</para>
<para> This binds the provided name with the view or binds the name with the number as a metric.</para>
</param>
<summary>Factory method for creating a constraint using Visual Format Language.</summary>
<returns>An array of layout constraints that are suitable to be added to a <see cref="View" /> using <see cref="View.AddConstraints(NSLayoutConstraint[])" /> method.</returns>
<remarks>
<example>
<code lang="csharp lang-csharp"><![CDATA[
NSLayoutConstraint.FromVisualFormat ("|-8-[messageView]-8-|", NSLayoutOptions.None, "messageView", MakeMessageView ());
]]></code>
</example>
</remarks>
</Docs>
<Docs DocId="M:UIKit.NSLayoutConstraint.ActivateConstraints(UIKit.NSLayoutConstraint[])">
<param name="constraints">Constraints to activate.</param>
<summary>Activates all of the constraints passed.</summary>
Expand Down Expand Up @@ -93,32 +74,6 @@ NSLayoutConstraint.ActivateConstraints(blueConstraints);
<para>It is easier to use the <see cref="NSLayoutConstraint.FromVisualFormat(System.String,NSLayoutFormatOptions,System.Object[])" /> overload as it combines support for both metrics and views in a single call.</para>
</remarks>
</Docs>
<Docs DocId="M:UIKit.NSLayoutConstraint.Create(Foundation.NSObject,UIKit.NSLayoutAttribute,UIKit.NSLayoutRelation,Foundation.NSObject,UIKit.NSLayoutAttribute,System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat)">
<param name="view1">First view in the constraint.</param>
<param name="attribute1">Attribute for the first view.</param>
<param name="relation">Relationships between the <paramref name="view1" /> and the <paramref name="view2" />.</param>
<param name="view2">
<para>Second view in the constraint.</para>
<para>This parameter can be <see langword="null" />.</para>
<para tool="nullallowed">This parameter can be <see langword="null" />.</para>
</param>
<param name="attribute2">Attribute for the second view.</param>
<param name="multiplier">Multiplier applied to the second attribute.</param>
<param name="constant">Constants to add.</param>
<summary>Factory method for creating a constraint.</summary>
<returns>
<para>New constraint with the specified parameters.</para>
<para>
</para>
</returns>
<remarks>
<para>Creates a constraint relationship between the <paramref name="view1" /> and the <paramref name="view2" /> that satisfies the following linear equation:</para>
<para>
</para>
<para>
<paramref name="attribute1" /> = <paramref name="multiplier" /> x <paramref name="attribute2" /> + <paramref name="constant" /></para>
</remarks>
</Docs>
<Docs DocId="M:UIKit.NSLayoutConstraint.Create(ObjCRuntime.INativeObject,UIKit.NSLayoutAttribute,UIKit.NSLayoutRelation,ObjCRuntime.INativeObject,UIKit.NSLayoutAttribute,System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat)">
<param name="view1">First view in the constraint.</param>
<param name="attribute1">Attribute for the first view.</param>
Expand Down
34 changes: 34 additions & 0 deletions docs/building-apps/build-items.md
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,40 @@ the `CollectAppManifestsDependsOn` property:
</Target>
```

## ReferenceNativeSymbol

The item group `ReferenceNativeSymbol` can be used to specify how we should
handle a given native symbol: either ignore it, or ask the native linker to
keep it (by passing the symbol as `-u ...` or in a symbol file to the native
linker).

There are two supported types of metadata:

* `SymbolType`: either `ObjectiveCClass`, `Function` or `Field`. Used to
compute the complete native name of a symbol (for instance, the native
symbol for the Objective-C class `MyClass` is `_OBJC_CLASS_$_MyClass`,
while for a function `MyFunction` it's just `_MyFunction`.
* `SymbolMode`: either `Ignore` or not set. `Ignore` means to not pass the given
symbol to the native linker, the default is to do so.

`SymbolType` is required, while `SymbolMode` isn't.

Example symbol to keep:

```xml
<ItemGroup>
<ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" />
</ItemGroup>
```

Example symbol to ignore:

```xml
<ItemGroup>
<ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" SymbolMode="Ignore" />
</ItemGroup>
```

### SkipCodesignItems

An item group that specifies files or directories in the app bundle that should not be signed.
Expand Down
36 changes: 3 additions & 33 deletions docs/building-apps/build-properties.md
Original file line number Diff line number Diff line change
Expand Up @@ -1093,37 +1093,7 @@ Only applicable to macOS and Mac Catalyst apps.

## ReferenceNativeSymbol

The item group `ReferenceNativeSymbol` can be used to specify how we should
handle a given native symbol: either ignore it, or ask the native linker to
keep it (by passing the symbol as `-u ...` or in a symbol file to the native
linker).

There are two supported types of metadata:

* `SymbolType`: either `ObjectiveCClass`, `Function` or `Field`. Used to
compute the complete native name of a symbol (for instance, the native
symbol for the Objective-C class `MyClass` is `_OBJC_CLASS_$_MyClass`,
while for a function `MyFunction` it's just `_MyFunction`.
* `SymbolMode`: either `Ignore` or not set. `Ignore` means to not pass the given
symbol to the native linker, the default is to do so.

`SymbolType` is required, while `SymbolMode` isn't.

Example symbol to keep:

```xml
<ItemGroup>
<ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" />
</ItemGroup>
```

Example symbol to ignore:

```xml
<ItemGroup>
<ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" SymbolMode="Ignore" />
</ItemGroup>
```
See [ReferenceNativeSymbol](build-items.md#referencenativesymbols)

## RequireLinkWithAttributeForObjectiveCClassSearch

Expand Down Expand Up @@ -1183,7 +1153,7 @@ This will pass `-W` to `open` if set to `true`.
Example:

```shell
$ dotnet run -p:OpenWaitForExit=false
$ dotnet run -p:OpenWaitForExit=true
```

### OpenArguments
Expand Down Expand Up @@ -1348,7 +1318,7 @@ The default trim mode depends on numerous factors, and may also change in the fu

The current (as of .NET 9) default values are:

* iOS and iOS: `partial` when building for device, `copy` when building for the simulator.
* iOS and tvOS: `partial` when building for device, `copy` when building for the simulator.
* macOS: always `copy`.
* Mac Catalyst: `partial` when building for the `"Release"` configuration, `copy` otherwise.

Expand Down
10 changes: 7 additions & 3 deletions docs/update-api-docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ The steps are:

Once this pull request has been merged, an automated publishing job will get any changes in the `main` branch into the `live` branch, which will then show up on https://learn.microsoft.com.

7. The last step is to create a pull request in the [binaries](https://apidrop.visualstudio.com/_git/binaries) repository for the `netX.Y-xcodeZ.W` we created with the new assemblies (into the `master` branch).
7. Create a pull request in the [binaries](https://apidrop.visualstudio.com/_git/binaries) repository for the `netX.Y-xcodeZ.W` we created with the new assemblies (into the `master` branch).

8. The final step is to flip the monikers from prerelease to live monikers (another ticket has to be created for this).

## How to create new monikers

Expand All @@ -67,13 +69,15 @@ So for the initial .NET 10 release, when we shipped APIs for iOS 26.0, tvOS 26.0
We can't create monikers ourselves, we have to request their creation:

1. Go here: [Learn Request Central](https://microsoft.sharepoint.com/teams/Partnerships/SitePages/Learn%20Request%20Central.aspx) (you might have to request access the first time you go here)
a. Under "GitHub Publishing Services" click [Submit your request](https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbRxxUz-ZV53lLrgTaBjGRmtBUNlkzT01CSzNBSE1SRU8yRzU5UTZFNjQyOC4u)
b. Fill in the form with:
1. Under "GitHub Publishing Services" click [Submit your request](https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbRxxUz-ZV53lLrgTaBjGRmtBUNlkzT01CSzNBSE1SRU8yRzU5UTZFNjQyOC4u)
2. Fill in the form with:
1. I am working on publishing a new content set.
2. I need help with updating information architecture (IA) or navigation.
3. Request monikers.
This will lead you to a template to fill an issue. Here's a sample of how I filled it out once: [#480959](https://dev.azure.com/msft-skilling/Content/_workitems/edit/480959).

Note: monikers are typically created as prerelease monikers. Another request has to be created to flip them to live monikers once everything else is in place.

It can be helpful to view info about all monikers here: [All monikers](https://ops.microsoft.com#/monikers)

## References
Expand Down
4 changes: 2 additions & 2 deletions dotnet/targets/Microsoft.Sdk.Desktop.targets
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
<_OpenArgumentsPre Condition="'$(OpenWaitForExit)' == 'true'">$(_OpenArgumentsPre) -W </_OpenArgumentsPre>
<_OpenArguments>$(_OpenArguments) $(RunEnvironment)</_OpenArguments>
<RunCommand>open</RunCommand>
<RunArguments>$(_OpenArgumentsPre) -a "$(TargetDir)/$(AssemblyName).app" $(OpenArguments) $(_OpenArguments) --args</RunArguments>
<RunArguments>$(_OpenArgumentsPre) -a "$(TargetDir)/$(_AppBundleName).app" $(OpenArguments) $(_OpenArguments) --args</RunArguments>
</PropertyGroup>

<PropertyGroup Condition="'$(RunWithOpen)' == 'false'">
<RunCommand>$(TargetDir)/$(AssemblyName).app/Contents/MacOS/$(AssemblyName)</RunCommand>
<RunCommand>$(TargetDir)/$(_AppBundleName).app/Contents/MacOS/$(_NativeExecutableName)</RunCommand>
<RunArguments />
</PropertyGroup>
</Target>
Expand Down
7 changes: 1 addition & 6 deletions dotnet/targets/Xamarin.Shared.Sdk.DefaultItems.targets
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,8 @@
</PropertyGroup>
</Target>

<PropertyGroup Condition="('$(RuntimeIdentifier)' != '' Or '$(RuntimeIdentifiers)' != '') And ('$(_PlatformName)' == 'iOS' Or '$(_PlatformName)' == 'tvOS')">
<_IsDotNetSimulatorBuild Condition="$(RuntimeIdentifier.Contains('simulator')) Or $(RuntimeIdentifiers.Contains('simulator'))">true</_IsDotNetSimulatorBuild>
<_IsDotNetSimulatorBuild Condition="'$(_IsDotNetSimulatorBuild)' == ''">false</_IsDotNetSimulatorBuild>
</PropertyGroup>

<PropertyGroup Condition="'$(ComputedPlatform)' == '' And ('$(_PlatformName)' == 'iOS' Or '$(_PlatformName)' == 'tvOS') ">
<ComputedPlatform Condition="'$(_IsDotNetSimulatorBuild)' == 'true'">iPhoneSimulator</ComputedPlatform>
<ComputedPlatform Condition="'$(SdkIsSimulator)' == 'true'">iPhoneSimulator</ComputedPlatform>
<ComputedPlatform Condition="'$(ComputedPlatform)' == ''">iPhone</ComputedPlatform>
</PropertyGroup>

Expand Down
1 change: 0 additions & 1 deletion dotnet/targets/Xamarin.Shared.Sdk.targets
Original file line number Diff line number Diff line change
Expand Up @@ -2434,7 +2434,6 @@

<Warning Condition="'$(_XamarinTargetPlatformVersionSupported)' != 'true'" Text="$(TargetPlatformVersion) is not a valid TargetPlatformVersion for $(_PlatformName). This warning will become an error in future versions of the $(_PlatformName) workload. Valid versions include:%0a$(_XamarinValidTargetPlatformVersions)" />
</Target>

<!--
Add a 'global using nfloat = System.Runtime.InteropServices.NFloat' to ease migration from Xamarin.
We're not using a the Usings item group, because this code shows a warning in .NET 7:
Expand Down
2 changes: 1 addition & 1 deletion eng/Version.Details.props
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ This file should be imported by eng/Versions.props
<MicrosofttvOSSdknet100_260PackageVersion>26.0.11017</MicrosofttvOSSdknet100_260PackageVersion>
<MicrosofttvOSSdknet100_262PackageVersion>26.2.10192</MicrosofttvOSSdknet100_262PackageVersion>
<!-- dotnet/xharness dependencies -->
<MicrosoftDotNetXHarnessiOSSharedPackageVersion>10.0.0-prerelease.25516.4</MicrosoftDotNetXHarnessiOSSharedPackageVersion>
<MicrosoftDotNetXHarnessiOSSharedPackageVersion>11.0.0-prerelease.26064.3</MicrosoftDotNetXHarnessiOSSharedPackageVersion>
</PropertyGroup>
<!--Property group for alternate package version names-->
<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,7 @@
<!-- E0029: not used anymore -->
<!-- E0030: not used anymore -->
<!-- E0031: not used anymore -->
<data name="E0032" xml:space="preserve">
<value>Could not locate SDK bin directory</value>
</data>
<!-- E0032: not used anymore -->
<!-- E0033: not used anymore -->
<!-- E0034: not used anymore -->
<!-- E0035: not used anymore -->
Expand Down Expand Up @@ -225,13 +223,7 @@
<data name="E0084" xml:space="preserve">
<value>Could not locate the {0} '{1}' SDK at path '{}'</value>
</data>
<data name="E0085" xml:space="preserve">
<value>Could not locate the {0} '{1}' SDK usr path at '{2}'</value>
<comment>The provided SDK path is missing a 'usr' directory. The following are literal names and should not be translated: SDK, usr
{0} - The platform name, such as 'iOS'.
{1} - The version number of the SDK.
{2} - The file path of the SDK.</comment>
</data>
<!-- E0085: not used anymore -->
<data name="E0086" xml:space="preserve">
<value>Could not find a valid Xcode developer path</value>
</data>
Expand Down
Loading
Loading