Bridges the worlds of .NET with the native APIs of macOS, iOS, tvOS, and watchOS.
Перейти к файлу
Rolf Bjarne Kvinge f7bb07efc0
[debugger] Work around a debugger issue when using the interpreter. (#15509)
There's a bug in the Mono runtime where the interpreter does not disable optimizations when the debugger is attached, which leads to the interpreter optimizing code and the debugger ending up rather confused.

The bug is fixed in the Mono runtime (https://github.com/dotnet/runtime/pull/71436), but there's no immediate way for the runtime to release this fix, so here we're implementing a workaround that disables interpreter optimizations if the debugging is enabled. It's somewhat clunky because the Mono external API wasn't designed for this, so we have to abuse the API a bit to accomplish the effect we want.

This is somewhat risky (since we're changing the startup path in a pretty big way), but there's an escape hatch via an environment variable, and also the workaround will not be in effect for release builds.

While the runtime issue exists in legacy mono/mono as well, we'll fix the Mono runtime for legacy, because we don't have to wait to consume legacy mono (https://github.com/xamarin/xamarin-macios/pull/15507). This means that the workaround is for .NET scenarios only.

This is a backport of ##15451.

Co-authored-by: Thays Grazia <thaystg@gmail.com>
2022-07-18 10:22:58 -04:00
.config [release/6.0.3xx] Merge 'release/6.0.4xx' into release/6.0.3xx (#15275) 2022-06-16 08:24:13 +02:00
.github [fabricbot] Update FabricBot with more useful commands (#14749) 2022-04-26 09:52:45 -05:00
Localize [Localization] Pulling New Localization Translations 2150044135 (#14721) 2022-04-13 16:33:50 -05:00
builds [release/6.0.3xx] Merge 'release/6.0.4xx' into release/6.0.3xx (#15275) 2022-06-16 08:24:13 +02:00
docs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
dotnet [release/6.0.3xx] [dotnet] Accept invalid runtime identifiers for Restore. (#15490) 2022-07-14 18:16:15 +02:00
eng [release/6.0.3xx] Update dependencies from dotnet/installer (#15421) 2022-07-15 20:34:13 +02:00
external Bump MonoTouch.Dialog and Touch.Unit. (#14684) 2022-04-07 15:20:54 +02:00
fsharp Add config file for libmono-native dllmap 2019-03-13 00:34:47 +01:00
jenkins Rename any *OSX_SDK_VERSION variables to *MACOS_SDK_VERSION. (#13411) 2021-11-22 18:48:05 +01:00
mk [release/6.0.3xx] Merge 'release/6.0.4xx' into release/6.0.3xx (#15275) 2022-06-16 08:24:13 +02:00
mono Add config file for libmono-native dllmap 2019-03-13 00:34:47 +01:00
msbuild [release/6.0.3xx] [msbuild] Copy partial app manifests to build server if they exists on Windows. Fixes #15267. (#15460) 2022-07-14 18:14:14 +02:00
opentk [src] Rename MAC_* variables to MACOS_* variables. (#12998) 2021-10-18 07:24:37 +02:00
runtime [debugger] Work around a debugger issue when using the interpreter. (#15509) 2022-07-18 10:22:58 -04:00
src [release/6.0.3xx] [CoreCLR] Avoid having any internal calls in managed code for CoreCLR. Fixes #15343. (#15457) 2022-07-14 18:21:51 +02:00
tests [release/6.0.3xx] [dotnet] Accept invalid runtime identifiers for Restore. (#15490) 2022-07-14 18:16:15 +02:00
tools [release/6.0.3xx] [msbuild/tools] Fix path issues in the FilterStaticFrameworks task and ExtractBindingLibraries step. Fixes #15289. (#15442) 2022-07-14 18:09:40 +02:00
.editorconfig [Build] Do not show the deprecated warnings. (#12683) 2021-09-14 10:30:41 -04:00
.gitignore [build] Use arcade dependency management tooling (#10890) 2021-04-02 00:02:27 -04:00
.gitmodules Submodule MonoTouch.Dialog. (#13058) 2021-10-26 08:18:34 +02:00
CODEOWNERS Yeah Steve! (#14551) 2022-03-29 13:01:52 -04: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 [release/6.0.3xx] Update dependencies from dotnet/installer (#15305) 2022-06-22 11:04:40 +02:00
Make.versions [release/6.0.3xx] Merge 'release/6.0.4xx' into release/6.0.3xx (#15275) 2022-06-16 08:24:13 +02:00
Makefile [.NET] Rename several DOTNET6_* variables to to DOTNET_*. (#14463) 2022-03-23 08:07:34 +01:00
NOTICE.txt Add NOTICE.txt and cgmanifest tool (#8843) 2020-06-12 14:30:21 -05:00
NuGet.config [release/6.0.3xx] Update dependencies from dotnet/installer (#15421) 2022-07-15 20:34:13 +02:00
README.md [api-diff] Bump to latest stable (xcode13.1 branch) + add support for different reference api urls for legacy iOS and Mac. (#13292) 2021-11-08 16:15:58 +01: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 [Xcode 13.3] Initial commit to Xcode 13.3 release 2022-03-14 22:54:33 -04:00
Versions-mac.plist.in [Xcode 13.3] Initial commit to Xcode 13.3 release 2022-03-14 22:54:33 -04: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 Remove the option of disabling the windows-specific part of the .NET build. (#11971) 2021-06-17 19:55:55 +02:00
global.json Bump our system/stable .NET to 6.0.201. (#14552) 2022-03-31 21:56:33 +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 [release/6.0.3xx] Merge 'release/6.0.4xx' into release/6.0.3xx (#15275) 2022-06-16 08:24:13 +02: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.11 (Xcode 13.1) 15.2.0.1 8.2.0.1
d16.11 (Xcode 13.0) 15.0.0.6 N/A
d16.10 14.20.0.24 7.14.0.27
d16.9 (Xcode 12.5) 14.16.0.5 7.10.0.5
d16.9 14.14.2.5 7.8.2.5
d16.8 (Xcode 12.4) 14.10.0.4 7.4.0.10
d16.8 (Xcode 12.3) 14.8.0.3 7.2.0.3
d16.8 (Xcode 12.2) 14.6.0.15 7.0.0.15
d16.8 14.4.1.3 6.22.1.26
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.