Bridges the worlds of .NET with the native APIs of macOS, iOS, tvOS, and watchOS.
Перейти к файлу
Rolf Bjarne Kvinge b7a9096cd1
[net10.0] [dotnet] Rework aggressive attribute trimming. Fixes #20906. (#21314)
The aggressive attribute trimming as exposed by ILLink is undocumented and has
problematic behavior, so disable it (it can't be statically validated) -
ILLink already removed support for it anyway.

However, this has a somewhat significant size increase for our apps, and it
would affect pretty much every app, so re-implement the aggressive attribute
trimming ourselves.

This is accomplished by copying ILLink's list of attributes to remove into our
own xml definition, which we then pass to ILLink.

I tested a release build of monotouch-test for all platforms, and the final
size is almost entirely unchanged, except for a minimal size decrease.

Here's the results for iOS: https://gist.github.com/rolfbjarne/dac3e08620a3ae499ad1fc134765e0d2

Fixes https://github.com/xamarin/xamarin-macios/issues/20906.
2024-10-15 15:59:35 +02:00
.config [msbuild] Use ILRepack as a dotnet tool. (#21240) 2024-09-17 16:22:04 +02:00
.github [devops/github] Update a few things for .NET 10. (#21392) 2024-10-10 14:26:41 +02:00
Localize Update AOTCompile task to handle cycles in up-to-date check (#20103) 2024-02-15 17:29:18 +01:00
builds [dotnet] Use a newer script to install .NET 10. 2024-10-11 11:33:41 +02:00
docs [net10.0] [dotnet] Rework aggressive attribute trimming. Fixes #20906. (#21314) 2024-10-15 15:59:35 +02:00
dotnet [net10.0] [dotnet] Rework aggressive attribute trimming. Fixes #20906. (#21314) 2024-10-15 15:59:35 +02:00
eng [net10.0] Update dependencies from dotnet/sdk (#21394) 2024-10-14 09:46:06 +02:00
external Remove the opentk submodule. (#21370) 2024-10-10 10:27:00 +02:00
jenkins [jenkins] Jenkins is dead, long live ~Wrench~ Azure Devops. (#16396) 2022-10-21 10:05:59 +02:00
mk Remove the opentk submodule. (#21370) 2024-10-10 10:27:00 +02:00
mono Add config file for libmono-native dllmap 2019-03-13 00:34:47 +01:00
msbuild [msbuild] Resolve the full path to the compiled entitlements in the CompileEntitlements task. (#21372) 2024-10-10 09:51:01 +02:00
release [builds] Delete most of the legacy logic. (#21239) 2024-09-20 17:44:15 +02:00
runtime [xcode16] Revert workarounds for breaking changes in earlier betas due to Apple removing watchOS APIs (#21121) 2024-08-29 00:10:35 +02:00
src [net10.0] [dotnet] Rework aggressive attribute trimming. Fixes #20906. (#21314) 2024-10-15 15:59:35 +02:00
tests [net10.0] [tests] Updated list of expected native libraries for .NET 10. (#21404) 2024-10-12 11:28:42 +02:00
tools [net10.0] Merge main into net10.0. 2024-10-10 15:50:24 +02:00
.editorconfig Update editorconfig. (#19909) 2024-01-26 08:24:58 +01:00
.gitattributes [dotnet] Fix line endings in template localizations. (#16981) 2022-12-12 17:12:35 +01:00
.gitignore Merge remote-tracking branch 'origin/net9.0' into merge-net9.0-into-main 2024-10-01 17:03:30 +02:00
.gitmodules Remove the opentk submodule. (#21370) 2024-10-10 10:27:00 +02:00
CODEOWNERS [WebKit] Merge WKWebKit into WebKit. (#17062) 2022-12-19 18:37:53 +01:00
DOWNLOADS.md Update DOWNLOADS.md with new releases. (#19595) 2023-12-11 08:47:13 +01:00
Directory.Build.props [net9.0] Update dependencies from dotnet/installer (#19844) 2024-01-23 07:24:51 +01:00
LICENSE Adjust license to match requested format 2016-04-25 16:38:57 -04:00
Make.config [net10.0] Merge main into net10.0. 2024-10-10 15:50:24 +02:00
Make.versions [net10.0] Subscribe to .NET 9/Xcode 16 packages. 2024-10-09 08:15:10 +02:00
Makefile [fsharp] Remove all build logic. (#21352) 2024-10-10 09:43:15 +02:00
NOTICE.txt Add NOTICE.txt and cgmanifest tool (#8843) 2020-06-12 14:30:21 -05:00
NuGet.config [net10.0] Update to .NET 10. 2024-10-09 07:49:35 +02:00
README.md Update README (#20536) 2024-05-01 08:29:31 +02:00
SECURITY.MD Add SECURITY.MD to repo (as suggested by OSPO) (#7019) 2019-09-19 17:44:22 -04:00
Versions-ios.plist.in Merge remote-tracking branch 'origin/main' into dev/rolf/bump-main-in-net9.0-2024-09-18 2024-09-19 09:48:34 +02:00
Versions-mac.plist.in Merge remote-tracking branch 'origin/main' into dev/rolf/bump-main-in-net9.0-2024-09-18 2024-09-19 09:48:34 +02:00
Xamarin.Mac.sln Fix path to dont link project in Xamarin.Mac.sln. (#8109) 2020-03-16 09:42:52 +01:00
Xamarin.iOS.sln [tests] Make the mtouch test project reference the actual mtouch project. (#11400) 2021-05-04 14:10:03 +02:00
banner.png [README] Add Xamarin.iOS + Xamarin.Mac banner (#1665) 2017-02-08 17:42:48 -05:00
configure [tools/install-source] Remove. (#21195) 2024-09-13 15:49:53 +02:00
create-make-config.sh Encode the .NET version we're targeting in the third NuGet version number. (#17818) 2023-03-17 07:39:59 +01:00
global.json [net10.0] Update dependencies from dotnet/sdk (#21394) 2024-10-14 09:46:06 +02:00
mac-entitlements.plist Implement notarization. (#6928) 2019-09-09 00:34:11 -07:00
product.snk Add our mono runtimes to the build. 2016-04-24 14:47:24 -04:00
system-dependencies.sh [system-dependencies] Remove the cmake dependency. (#21375) 2024-10-10 11:23:39 +02:00
versions-check.csharp [dotnet] Differentiate between "OS version we support as TargetPlatformVersion" and "OS version we support or have supported". (#19882) 2024-01-23 19:17:25 +01:00

README.md

.NET for iOS, Mac Catalyst, macOS, tvOS

Welcome!

This module is the main repository for:

  • .NET for iOS
  • .NET for Mac Catalyst
  • .NET for macOS
  • .NET for tvOS

These SDKs allow us to create native iOS, Mac Catalyst, macOS and tvOS applications using the same UI controls we would in Objective-C and Xcode, except with the flexibility and elegance of a modern language (C#), the power of the .NET Base Class Library (BCL), and first-class IDEs and editors—Visual Studio and Visual Studio Code—at our fingertips.

This repository is where we do development for the .NET for iOS, Mac Catalyst, macOS, and tvOS SDKs. .NET for iOS, Mac Catalyst, macOS, and tvOS are part of .NET MAUI, and may also be used independently for native iOS and macOS development with .NET.

There are a few ways that you can contribute, for example:

Support

.NET for iOS, Mac Catalyst, macOS, and tvOS are part of .NET MAUI, since it was introduced in May 2022 as part of .NET 6, and is currently supported as described on the .NET MAUI Support Policy.

Support for Xamarin.iOS and Xamarin.Mac ended on May 1, 2024 as per the Xamarin Support Policy:

Xamarin support ended on May 1, 2024 for all Xamarin SDKs including Xamarin.Forms. Android API 34 and Xcode 15 SDKs (iOS and iPadOS 17, macOS 14) are the final versions Xamarin targets from existing Xamarin SDKs (i.e. no new APIs are planned).

Contributing

If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute, which covers the following:

Downloads

The preferred method for installing Xamarin.iOS and Mac is to use the Visual Studio installers (Windows, Mac).

The team also strongly recommends using the latest Xamarin SDK and Xcode whenever possible.

However, we provide links to older Xamarin.iOS and Mac packages for macOS downgrades and build machine configuration, see Downloads.

Feedback

Discord

License

Copyright (c) .NET Foundation Contributors. All rights reserved. Licensed under the MIT License.