f7bb07efc0
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> |
||
---|---|---|
.config | ||
.github | ||
Localize | ||
builds | ||
docs | ||
dotnet | ||
eng | ||
external | ||
fsharp | ||
jenkins | ||
mk | ||
mono | ||
msbuild | ||
opentk | ||
runtime | ||
src | ||
tests | ||
tools | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
CODEOWNERS | ||
ISSUE_TEMPLATE.md | ||
LICENSE | ||
Make.config | ||
Make.versions | ||
Makefile | ||
NOTICE.txt | ||
NuGet.config | ||
README.md | ||
SECURITY.MD | ||
Versions-ios.plist.in | ||
Versions-mac.plist.in | ||
Xamarin.Mac.sln | ||
Xamarin.iOS.sln | ||
banner.png | ||
configure | ||
global.json | ||
mac-entitlements.plist | ||
product.snk | ||
system-dependencies.sh | ||
versions-check.csharp |
README.md
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:
- Submit bugs and feature requests
- Review source code changes
- Submit pull requests to resolve issues and fix bugs
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:
- How to build and run from source
- The development workflow, including debugging and running tests
- Coding Guidelines
- Submitting pull requests
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
- Ask a question on Stack Overflow or the Xamarin Forums
- Request a new feature on GitHub
- Vote on existing feature requests
- Submit bugs to GitHub Issues
- Discuss development and design on Discord
License
Copyright (c) .NET Foundation Contributors. All rights reserved. Licensed under the MIT License.