- The latest features and API requires Xcode 8.3 and the bundled macOS SDK;
- Apple Xcode 8.3 requires a Mac running OSX 10.12 (Sierra) or newer;
This release is built upon our open sourced SDK,
d15-3 branch, and include some additional IDE integration tools.
Target Framework Renaming
Since Xamarin.Mac 2.0 multiple target frameworks have been offered, optimized for different use cases.
While technically accurate at the time, their naming left much to be desired, however.
In Xamarin.Mac 3.6 they are being renamed to:
- Modern (Optimized profile also powering Xamarin.iOS) replace Mobile.
- Full (Extended desktop API compatibility) replaces XM 4.5.
The Modern and Full target frameworks behave exactly the same as before, and existing projects will require zero changes.
Framework linkage improvements
Previous versions of Xamarin.Mac did not correctly pass -framework and -weak_framework arguments to clang based upon bindings.
This prevented some APIs, such as LocalAuthentication from working correctly without work around.
While this change should be transparent to a majority of users, due to the possibility of breakage cause it is being documented here.
Please report any issues via bugzilla.
- pr2096 - Fix target framework detection issues in mmp
- 43780 - Implement support for removing IsInformal from a protocol in a specific SDK version
- pr2139 - [mtouch/mmp] Print assembly references in verbose mode
- 52664 - [generator] Deriving from certain protocol interfaces causes the generator to throw a BI0000: NullReferenceException
- 52665 - [generator] Deriving from certain protocol interfaces generates uncompilable code
- pr1946 - NSActivityOptions.IdleDisplaySleepDisabled had wrong value
- pr1946 - Add NSFileManager.UnmountVolume
- pr1672 - [Mac] Update numerous availability tags from 10.12.1 to 10.12.2
- pr2042 - Fix casting in NSApplication.NextEvent on 64-bit systems
- pr2050 - Decorate NSWindow and NSSegmentedControl methods with NullAllowed attribute.
- 32612 - WebView.SetSelectedDomRange
- 57780 - [aot] Could not inflate generic type
- 55147 - "Content" Build Action does not copy file into .app bundle when project is built with
- pr1977 - [msbuild] Fix running bgen for Xamarin.Mac. (#1977)
- 53927 - MMP should ship debugging symbols just like mtouch
- 54914 - Error executing task IBTool: An item with the same key has already been added
- 36258 - There is no MAC pre-processor directive
- 51753 - [msbuild] Add support for passing extra args to btouch
- 53420 - Add unusual checks necessary to process obfuscated code
- 54919 - Bug 54919 - NSFormatter subclass sample does not work in static registrar
- 57119 - Code signing no longer expands wildcards * in distribution provisioning profiles
- 55857 - Code that works in DEBUG; System.NotSupportedException in RELEASE
- 55870 - Partial static registrar can't be used with custom managed exception marshaling
Additional fixes were released in Xamarin.Mac 184.108.40.206, including:
- 57919 - [bcl]
PlatformNotSupportedExceptionand breaks uses of dynamic / SLE [220.127.116.11+]
- 58834 - [cecil] Fix MT2102 due to incorrect cecil throws ANE for some debugging symbols [18.104.22.168+]
Additional fixes were released in Xamarin.Mac 22.214.171.124, including:
- 44027 - [System.Net.Http] Chunked HTTP PUT times out. [126.96.36.199+]
- 58829 - [runtime] Many "[Mono] worker parking, [Mono] worker unparking" messages appearing in application output. [188.8.131.52+]
The following documents contains a complete list of the API changes since our latest stable release: XM 3.4 (15.2)