Bridges the worlds of .NET with the native APIs of macOS, iOS, tvOS, and watchOS.
Перейти к файлу
Rolf Bjarne Kvinge cfe0a309dc
[CoreCLR] Add support for mono_assembly_open. (#10962)
This requires a few things:

* [runtime] Add support for generating managed delegates only for CoreCLR.

    However, since our managed code is shared between CoreCLR and MonoVM, the
    best we can do is to make these CoreCLR-only delegates .NET-only.

* [runtime] Make it possible to implement Mono Embedding API in the CoreCLR bridge

    By making it possible to skip the automatically generated Mono Embedding

* [runtime] Add a MonoObject implementation for CoreCLR.

    We need a way to represent a managed object in native code, and since most
    our existing runtime code uses MonoObjects, we use the same for the
    CoreCLR bridge, just our own version of it. In Mono, the MonoObjects are
    tracked by the GC (which scans the stack), but we can't make CoreCLR scan
    the stack, so we use a reference counted version of MonoObject instead -
    we just put the GCHandle into a reference counted MonoObject, and when the
    MonoObject is freed, then we free the GCHandle as well.

* Go through all uses of mono_assembly_open, and make sure they release the
  returned assembly.
2021-03-25 15:56:56 +01:00
.github/workflows [Actions] Backports should use forks. (#10530) 2021-01-26 15:41:55 -05: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] Build macOS/.NET for ARM64 as well. (#10959) 2021-03-25 07:26:48 +01:00
external [tests] Don't forcefully exit macOS tests. (#10844) 2021-03-17 18:46:29 +01:00
fsharp Add config file for libmono-native dllmap 2019-03-13 00:34:47 +01:00
jenkins [xcode12.4] Update NuGet feed (#10600) 2021-02-11 09:35:04 -05:00
mk [dotnet] Build macOS/.NET for ARM64 as well. (#10959) 2021-03-25 07:26:48 +01:00
mono Add config file for libmono-native dllmap 2019-03-13 00:34:47 +01:00
msbuild [msbuild] Fix ItemName vs PropertyName confusion in task output. (#10936) 2021-03-25 15:51:37 +01:00
opentk Xamarin.Mac native Apple Silicon targetting support (#10115) 2021-03-17 21:48:02 -04:00
runtime [CoreCLR] Add support for mono_assembly_open. 2021-03-25 07:32:32 +01:00
src [CoreCLR] Add support for mono_assembly_open. (#10962) 2021-03-25 15:56:56 +01:00
tests [tests] Adjust BuildingSameSolutionTwice_ShouldNotRunACToolTwice to work on an M1 machine. (#10954) 2021-03-25 07:25:05 +01:00
tools [CI][APDiff] Fix pattern matching. (#10961) 2021-03-25 08:35:22 -04:00
.editorconfig Add .editorconfig (#8058) 2020-03-10 11:24:46 -04:00
.gitignore [tests] Get samples build tests running again (#10677) 2021-02-21 10:24:26 -05:00
.gitmodules Add ikvm-fork as a submodule instead of using the sources embedded in the mono archive. (#9776) 2020-10-05 15:43:32 +02: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 [dotnet] Build macOS/.NET for ARM64 as well. (#10959) 2021-03-25 07:26:48 +01:00
Make.versions Merge remote-tracking branch 'xamarin/xcode12.4' into main-xcode12.4-bump 2021-02-11 21:20:58 -05:00
Makefile [Makefile] Why copy-paste when you can 'make fix-xcode-select' (#10692) 2021-02-23 07:43:21 -05:00
NOTICE.txt Add NOTICE.txt and cgmanifest tool (#8843) 2020-06-12 14:30:21 -05:00
NuGet.config [dotnet] Initial support for .NET6 from Windows (#10590) 2021-02-12 07:43:17 +01: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.4' into main-xcode12.4-bump 2021-02-11 21:20:58 -05:00
Versions-mac.plist.in [xcode12.3] Initial bump to Xcode 12.3 Beta 1 (#10135) 2020-11-23 09:48:06 -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 [configure] Use bash instead of sh and fix a shellcheck warning about unquoted variables. (#10856) 2021-03-12 23:14:16 +01: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] Only use the locally installed .NET version. (#9885) 2020-10-16 08:23:22 +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.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.