Bridges the worlds of .NET with the native APIs of macOS, iOS, tvOS, and watchOS.
Перейти к файлу
Sebastien Pouliot 4e48aa2ae1
[generator][dotnet] Add support for `[Uns|S]upportedOSPlatformAttribute` (#10580)
This moves our current/legacy attributes to the ones added in dotnet 5 [1].

Short Forms (only in bindings)

| Old                                   | New                                 |
|---------------------------------------|-------------------------------------|
| [iOS (7,0)]                           | [SupportedOSPlatform ("ios7.0")]    |
| [NoIOS]                               | [UnsupportedOSPlatform ("ios")]     |

Long Forms

| Old                                   | New                                 |
|---------------------------------------|-------------------------------------|
| [Introduced (PlatformName.iOS, 7,0)]  | [SupportedOSPlatform ("ios7.0")]    |
| [Obsoleted (PlatformName.iOS, 12,1)]  | [Obsolete (...)]                    |
| [Deprecated (PlatformName.iOS, 14,3)] | [UnsupportedOSPlatform ("ios14.3")] |
| [Unavailable (PlatformName.iOS)]      | [UnsupportedOSPlatform ("ios")]     |

Other changes

* `[SupportedOSPlatform]` and `[UnsupportedOSPlatform]` are not allowed on `interface` [2] which means they cannot be used for protocols. This is currently handled by inlining the existing attributes on all members.
* `[ObsoletedInOSPlatform]` was removed in net5 RC. This PR is now mapping the existing attributes to `[Obsolote]`, however multiple ones cannot be added so they need to be platform specific.

Remaining work (manual bindings update) tracked in https://github.com/xamarin/xamarin-macios/issues/11055

References

* [1] https://github.com/xamarin/xamarin-macios/issues/10170
* [2] https://github.com/dotnet/runtime/issues/47599
* [3] https://github.com/dotnet/runtime/issues/47601
2021-04-10 11:09:14 -04:00
.github/workflows [CI] Do not longer need to use a rebase trigger we have it from github. (#11171) 2021-04-09 07:10:07 -04:00
Localize [Localization] Turning on OneLocBuild (#10843) 2021-03-15 13:50:21 -05:00
builds [dotnet] Build macOS/.NET for ARM64 as well. (#10959) 2021-03-25 07:26:48 +01:00
docs [docs] Clarify optional protocol support with class vs interface (#10021) 2020-12-03 13:38:46 -05:00
dotnet [dotnet] Add ICU support for iOS builds (#11163) 2021-04-09 17:06:26 -04:00
eng Update dependencies from https://github.com/mono/linker build 20210405.2 (#11114) 2021-04-06 14:08:35 -04:00
external Fix submodules and disable AddressBookTests in MacCat 2021-04-06 20:47:17 -04:00
fsharp Add config file for libmono-native dllmap 2019-03-13 00:34:47 +01:00
jenkins [VSTS] Move away from Jenkins to VSTS pipelines for xamarin-macios. (#10302) (#10343) 2021-01-06 16:26:21 -05:00
mk Bump maccore to fix mlaunch NRE when starting Simulator bundles (#11165) 2021-04-09 13:39:01 -04:00
mono Add config file for libmono-native dllmap 2019-03-13 00:34:47 +01:00
msbuild Reenable HotRestart targets for the legacy Sdk (#11169) 2021-04-09 11:20:05 -04:00
opentk Xamarin.Mac native Apple Silicon targetting support (#10115) 2021-03-17 21:48:02 -04:00
runtime [dotnet] Add ICU support for iOS builds (#11163) 2021-04-09 17:06:26 -04:00
src [generator][dotnet] Add support for `[Uns|S]upportedOSPlatformAttribute` (#10580) 2021-04-10 11:09:14 -04:00
tests [generator][dotnet] Add support for `[Uns|S]upportedOSPlatformAttribute` (#10580) 2021-04-10 11:09:14 -04:00
tools [CI] Set status as error if one or more tests failed. (#11170) 2021-04-09 21:52:25 -04:00
.editorconfig Add .editorconfig (#8058) 2020-03-10 11:24:46 -04:00
.gitignore [build] Use arcade dependency management tooling (#10890) 2021-04-02 00:02:27 -04:00
.gitmodules Fix submodules and disable AddressBookTests in MacCat 2021-04-06 20:47:17 -04:00
CODEOWNERS [tests] Merge the msbuild-mac tests into the Xamarin.MacDev.Tests project. (#10129) 2020-12-04 13:05:51 +01:00
ISSUE_TEMPLATE.md Instruction to find the build logs (#6871) 2019-08-29 10:42:14 -04:00
LICENSE Adjust license to match requested format 2016-04-25 16:38:57 -04:00
Make.config Revert "[Make.config] Allow '.' on CURRENT_BRANCH_ALPHANUMERIC to match android package names (#11108)" (#11115) 2021-04-05 18:02:46 -04:00
Make.versions Merge remote-tracking branch 'xamarin/xcode12.5' into alex-xcode12.5-main 2021-04-02 21:46:31 -04:00
Makefile [Build] Add a rule to execute the first run of Xcode. Why copy paste a command? (#11180) 2021-04-09 21:41:29 -04:00
NOTICE.txt Add NOTICE.txt and cgmanifest tool (#8843) 2020-06-12 14:30:21 -05:00
NuGet.config [build] Use arcade dependency management tooling (#10890) 2021-04-02 00:02:27 -04:00
README.md [README] Bump downloads to our new Xamarin.iOS stable (#9981) 2020-10-28 07:35:47 -04: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 'xamarin/xcode12.5' into alex-xcode12.5-main 2021-04-02 21:46:31 -04:00
Versions-mac.plist.in [xcode12.5] Initial bump for beta 1 (#10573) 2021-02-05 20:30:24 -05: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 [src] Use `Runtime.NSLog` instead of `System.Console.WriteLine` (#8626) 2020-05-20 13:38:44 -04:00
banner.png [README] Add Xamarin.iOS + Xamarin.Mac banner (#1665) 2017-02-08 17:42:48 -05:00
configure [Build] Allow to disable the build with the xamarin parts. (#11179) 2021-04-09 21:40:02 -04:00
global.json [build] Use arcade dependency management tooling (#10890) 2021-04-02 00:02:27 -04: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 [Build] Add a rule to execute the first run of Xcode. Why copy paste a command? (#11180) 2021-04-09 21:41:29 -04:00
versions-check.csharp [versions-check.csharp] Improve this script a bit (#10323) 2021-01-11 10:47:57 +01:00

README.md

Xamarin.iOS + Xamarin.Mac logo

Xamarin.iOS & Xamarin.Mac

Welcome!

This module is the main repository for both Xamarin.iOS and Xamarin.Mac.

These SDKs allow us to create native iOS, tvOS, watchOS and macOS 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 two first-class IDEs—Visual Studio for Mac and Visual Studio—at our fingertips.

This repository is where we do development for the Xamarin.iOS and Xamarin.Mac SDKs. There are a few ways that you can contribute, for example:

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.

Version Xamarin.iOS Xamarin.Mac
d16.7 14.2.0.12 6.20.2.2
d16.6 13.18.2.1 6.18.2.1
d16.5 13.16.0.13 6.16.0.13
d16.4 13.10.0.21 6.10.0.21
d16.3 13.6.0.12 6.6.0.12
d16.2 12.14.0.114 5.14.0.114
d16.1 12.10.0.157 5.10.0.157
d16.0 12.8.0.2 5.8.0.0

Feedback

Discord

License

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