.NET Embedding can target various platforms when generating Objective-C code:
- watchOS [not implemented yet]
The platform is selected by passing the
argument to .NET Embedding.
When building for the iOS, tvOS and watchOS platforms, .NET Embedding will always create a framework that embeds Xamarin.iOS, since Xamarin.iOS contains a lot of runtime support code which is required on these platforms.
However, when building for the macOS platform, it's possible to choose whether
the generated framework should embed Xamarin.Mac or not. It's possible to not
embed Xamarin.Mac if the bound assembly does not reference Xamarin.Mac.dll
(either directly or indirectly), and this is selected by passing
--platform=macOS to the .NET Embedding tool.
If the bound assembly contains a reference to Xamarin.Mac.dll, it's necessary to embed Xamarin.Mac, and additionally the embeddinator must know which target framework to use.
There are three possible Xamarin.Mac target frameworks:
system (the difference between each is
described in Xamarin.Mac's target framework documentation), and each is
selected by passing
--platform=macOS-system to the .NET Embedding tool.