The embeddinator can target various platforms when generating Objective-C code:
The platform is selected by passing the
argument to the embeddinator.
When building for the iOS, tvOS and watchOS platforms, the embeddinator 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 embeddinator.
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 embeddinator.