1) Create a normal console application, reference the desktop Xamarin.Mac.dll and make sure libxammac.dylib is local copied.
2) Invoke `NSApplication.Init (); Console.WriteLine (NSApplication.SharedApplication)`
Result: shared application will be null. The reason is that the class pointer is null because AppKit was not loaded when the static constructor for NSApplication ran . We either need to ensure the appkit framework has loaded before we get the class handle for NSApplication, or we need to reload the class handle after we load libxammac.dylib (which ensures App/kit loads as iy is a dependency).
If we want to refresh the handle as part of NSApplications.Init we just have to be careful that our initialisation does not indirectly require that handle to exist.