Xamarin.Mac

Xamarin.Mac 4.1

Last Update: 01/03/2018

System RequirementsWhat's NewKnown IssuesBlogsOpen Source

Installing

Requirements

  • The latest features and API requires Xcode 9.2 and the bundled macOS SDKs;
  • Apple Xcode 9.2 requires a Mac running macOS 10.12.6 (Sierra) or newer;

Feedback

We'd love to hear from you! If there are any problems with this release, check the Xamarin.Mac Forums, Xamarin Bugzilla Tracker and GitHub for existing issues. Report new issues and suggestions on GitHub.

Release History

This version Xamarin.Mac correspond to our 15.6 (d15-6) milestone.

You can learn more about how we ship our releases in the Visual Studio 2017 Release Rhythm document.

Issues Fixed

  • 32022 - [foundation] Fix DateTime from NSDate seconds (decimal) precision loss when converting.
  • 51263 - [corefoundation] Fix CFMessagePort crash when returning data from callback
  • 51343 - [appkit] validateMenuItem not called for menu items with c# events for the action
  • 59537 - [coreanimation] CATextLayer.Alignment* strings should be CATextLayerAlignment enum / type
  • 59635 - [appkit] Window.Toolbar cannot be set to null
  • 59647 - [mmp] Release mode AOT should delete dSYM files
  • 59911 - [AudioToolbox] Handle is not initialized when trying to create instance of InputAudioQueue
  • 59994 - [runtime] Deadlock in the runtime when the GC runs and the XI runtime is releasing managed refs
  • 60233 - [runtime] Assertion in dynamic-image.c
  • 60277 - [mmp] Fix broken debugging in cases due to stale symbols
  • 60294 - [mmp] Add registrar option to help
  • 60416 - [appkit] NSCollectionView.ValidateDrop should use 'ref', not 'out'.
  • 61101 - NSView.LocationInView does not accept null
  • 60935 - NSGestureRecognizer.State binding incorrect causing issues with custom recognizers
  • 60821 - ArgumentNullException due to wrong binding in NSWorkspace.SharedWorkspace.OpenFile
  • 60377 - MSBuild is getting confused by similar provisioning profiles
  • 60545 - Multiple argument generic with contravariant interface as an argument causes MissingMethodException.
  • 60771 - Attempting to JIT compile method 'System.Runtime.CompilerServices.Unsafe:Add (byte&,int)' while running in aot-only mode

Breaking Changes

Integrated Mono Features/Fixes

Xamarin.Mac uses a customized runtime and base class librairies (BCL) from Mono 5.x (hash).

Additional information can be found in Mono release notes.

What's New in this Release

  • MMP now accepts response files for arguments
  • 57094 - [generator] Improve BI1014 - include name of unsupported field and valid types
  • 58243 - [appkit] Add NSApplicationLaunchUserNotificationKey in more obvious location
  • 58251 - [msbuild] When looking for valid signing certificates, print out each invalid certificate and state why it's not valid
  • 59186 - [mmp] Improve multiple MM4162 error use case by adding MM0091 error
  • 58583 - [mmp] Improve error message when handling mixed-mode assembly references
  • 60423 - [security] Add RequestSharedWebCredential overload.
  • 60541 - [foundation] Expose initWithDictionary:copyItems: in NS[Mutable]Dictionary
  • 57797 - [generator] BindAs support for array of nullable values
  • 58792 - [generator] Disallow the use of [Async] when the signature contains ref/out parameters
  • 57804 - [generator] Fix slightly incorrect error message when trying to use ref/out parameters with BindAs attributes.
  • 57795 - [generator] BindAs attribute for smart enum to multidimensional array generates code that doesn't compile

Known Issues

API Diff

This is a live document so there's no static list to link to. However our Jenkins bots produce this information for every commit that is being built. Pick a build based on master and look for the API diff link on the left column.

Open Source

Xamarin.Mac is based on the following open-source repositories: * xamarin-macios branch master * mono branch 2017-10

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.