Bridges the worlds of .NET with the native APIs of macOS, iOS, tvOS, and watchOS.
Перейти к файлу
Rolf Bjarne Kvinge d5697a8867
[runtime] Use the full managed description (including inner exceptions) as the reason when creating an NSException from a managed exception. (#14002)
This makes diagnosing what happens much easier in some cases.

Exhibit A, pre fix:

    *** Terminating app due to uncaught exception 'ObjCRuntime.RuntimeException', reason: 'Failed to lookup the required marshalling information.
    Additional information:
    	Selector: conformsToProtocol:
    	Type: ViewController

Exhibit B, post fix:

    *** Terminating app due to uncaught exception 'ObjCRuntime.RuntimeException', reason: 'Failed to lookup the required marshalling information.
    Additional information:
    	Selector: conformsToProtocol:
    	Type: ViewController
     (ObjCRuntime.RuntimeException)
    Failed to get the 'this' instance in a method call to templ.ViewController.InvokeConformsToProtocol. (ObjCRuntime.RuntimeException)
       at Registrar.DynamicRegistrar.GetMethodDescriptionAndObject(Type type, IntPtr selector, Boolean is_static, IntPtr obj, IntPtr& mthis, IntPtr desc)
       at ObjCRuntime.Runtime.GetMethodAndObjectForSelector(IntPtr klass, IntPtr sel, Boolean is_static, IntPtr obj, IntPtr& mthis, IntPtr desc)
       at ObjCRuntime.Runtime.get_method_and_object_for_selector(IntPtr cls, IntPtr sel, Boolean is_static, IntPtr obj, IntPtr& mthis, IntPtr desc, IntPtr& exception_gchandle)
    Failed to marshal the Objective-C object 0x7f813fd2f470 (type: ViewController). Could not find an existing managed instance for this object, nor was it possible to create a new managed instance (because the type 'templ.ViewController' does not have a constructor that takes one NativeHandle argument). (ObjCRuntime.RuntimeException)
       at ObjCRuntime.Runtime.MissingCtor(IntPtr ptr, IntPtr klass, Type type, MissingCtorResolution resolution)
       at ObjCRuntime.Runtime.ConstructNSObject[T](IntPtr ptr, Type type, MissingCtorResolution missingCtorResolution)
       at ObjCRuntime.Runtime.ConstructNSObject(IntPtr ptr, IntPtr klass, MissingCtorResolution missingCtorResolution)
       at ObjCRuntime.Runtime.GetNSObject(IntPtr ptr, MissingCtorResolution missingCtorResolution, Boolean evenInFinalizerQueue)
       at Registrar.DynamicRegistrar.GetMethodDescriptionAndObject(Type type, IntPtr selector, Boolean is_static, IntPtr obj, IntPtr& mthis, IntPtr desc)
2022-02-02 16:22:34 +01:00
.github/workflows [Github Actions] Get rid of annoying failure emails (#13028) 2021-10-21 11:40:38 -05:00
Localize [Localization] Pulling New Localization Translations 1627849748 (#13639) 2022-01-04 08:37:41 -06:00
builds [main] Update dependencies from dotnet/runtime (#13648) 2022-01-11 07:21:19 +01:00
docs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
dotnet [dotnet] Ask the linker to not mark copied assemblies if we're in a 'don't link' scenario. (#14011) 2022-02-02 08:36:17 +01:00
eng [main] Update dependencies from dotnet/installer (#13958) 2022-01-31 11:25:49 +01:00
external [Foundation] Remove some obsolete API in .NET. (#13678) 2022-01-17 20:58:46 +01: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 [dotnet] Figure out where to publish files in the app bundle. Fixes #12572. (#13591) 2022-01-17 09:50:06 +01:00
mono Add config file for libmono-native dllmap 2019-03-13 00:34:47 +01:00
msbuild [msbuild] Unify the _CodesignAppBundle targets between iOS and Mac. (#13870) 2022-01-28 09:20:58 +01:00
opentk [src] Rename MAC_* variables to MACOS_* variables. (#12998) 2021-10-18 07:24:37 +02:00
runtime [runtime] Use the full managed description (including inner exceptions) as the reason when creating an NSException from a managed exception. (#14002) 2022-02-02 16:22:34 +01:00
src [NET 6 Attribute Conversion] MediaPlayer (#13975) 2022-02-02 10:18:45 -05:00
tests [runtime] Use the full managed description (including inner exceptions) as the reason when creating an NSException from a managed exception. (#14002) 2022-02-02 16:22:34 +01:00
tools [objcruntime] Remove `SupportsModernObjectiveC` from the registrar (#13954) 2022-01-28 10:10:22 +01: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 [msbuild] Add @mauroa as a code owner. (#12766) 2021-09-17 13:19:03 -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 [main] Update dependencies from dotnet/installer (#13871) 2022-01-27 10:13:42 +01:00
Make.versions Bump versions to help on the windows insertion and installer 2022-01-20 15:11:28 -05:00
Makefile [dotnet] Add Mac Catalyst to the list of versions we list in 'make check-system'. (#12747) 2021-09-16 15:02:55 +02:00
NOTICE.txt Add NOTICE.txt and cgmanifest tool (#8843) 2020-06-12 14:30:21 -05:00
NuGet.config [main] Update dependencies from dotnet/installer (#13353) 2021-11-15 22:54:55 +01: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 [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
Versions-mac.plist.in [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -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 [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 [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 Rename any *OSX_SDK_VERSION variables to *MACOS_SDK_VERSION. (#13411) 2021-11-22 18:48:05 +01: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.