Update to macOS High Sierra The next version of Xcode (9.3) requires macOS High Sierra. In order to support the Xcode 9.3 SDKs, a future version of Xamarin.Mac will also require macOS High Sierra. Xamarin.Mac developers should update to macOS High Sierra as soon as possible.
- Visual Studio 2017 for Mac – Beta updater channel
- 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;
Your feedback is important to us. If there are any problems with this release, check the Xamarin.Mac Forums and GitHub Issues for existing issues. If you do not find any matching issue, please feel free to start a new discussion and report an issue.
This version Xamarin.Mac correspond to our 15.7 (
- March 8, 2018 - Xamarin.Mac 188.8.131.52
You can learn more about how we ship our releases in the Visual Studio 2017 Release Rhythm document.
March 8, 2018 - Xamarin.Mac 184.108.40.206
- 3303 - [avfoundation] Fix
AVAudioUnitComponentManagerdefault .ctor crash
- 3372 - [linker] Mark all
- 60634 - [runtime] Fixed
Assertion failure 'align > 0
- PR3170: [metalperformanceshaders] Fix
MPSImageLanczosScalebase class. As part of the fix the
MPSImageScale.ScaleTransformproperty changed to be a nullable value-type. The previous API did not work correctly so this should not affect applications being re-compiled.
What's New in this Release
- 32-bit Warnings and Stripping
- Registrar Optimizations
- New Bindings
- API Enhancements
- Tooling Enhancements
32-bit Warnings and Stripping
Apple has announced that it will not allow macOS App Store submissions of 32-bit apps (starting January 2018).
In addition 32-bit applications will not run on the version of macOS after High Sierra "without compromises".
Two related changes are included in Xamarin.Mac 4.4:
- Warnings are included when building 32-bit applications to help prepare developers for the transition.
- Release mode configurations will, by default, strip unused architectures from bundled native libraries. In addition to reduce application size, this is needed for acceptance into the macOS App Store. This can be disabled by adding "--optimize=-trim-architectures" to the Additional MMP Arguments in the Mac Build project settings.
This is a set of optimizations that improves the output from the static registrar. This results in:
- Smaller applications - The linked
Xamarin.Mac.dllis smaller than before since the information (e.g. custom attributes) needed only at build time can now be removed. This also allows the linker to remove more code than before (since less code is being referenced);
- Faster application startup - More registration work is being done at build time instead of at runtime. E.g. this removes the need to use (slow) reflection on custom attributes to register types and methods;
- Reduced memory usage - The avoided work also reduces the memory required for applications.
- CoreSpotlight.framework API have been enabled (available in High Sierra and above);
MusicPlayerrelated types in AudioToolbox.framework;
- Additional macOS-only types in CoreAudioKit.framework;
- Additional support for
- Additional support for
PHLivePhotoViewAPI in PhotoUI.framework;
- 3206 - [webkit] Allow
- 3247 - [generator] Add support for
[DesignatedDefaultCtorAttribute]as a type-level attribute
- 3392 - [scenekit] Adds
- 34135 - [security] Add new
- 35009 - [foundation] Add
- 41292 - [foundation] Add
- 59294 - [coreimage] Enable
ImageRepresentationstrong dictionary helpers
- 60740 - [foundation] Add
- 60826 - [appkit] Change some
NSOpenGL*types to be thread safe
- 3200 - [mtouch][mmp] Warn for invalid debug symbols files (e.g. out of sync)
- 3325 - [mmp] Warn when building 32-bit macOS applications
- 3367 - [mmp] Add stripping of 32-bit dylibs to work with new App Store restrictions
- 56501 - [mtouch][mmp][bgen] Add support for response files
- 57531 - [generator] Support the use of
- 57870 - [generator] Teach generator about
[WrapAttribute]on getters and setters
- 58350 - [generator] Handle sharpie's
- The command-line tool
mmpnow accepts response files for arguments.
Integrated Mono Features/Fixes
Additional information can be found in Mono release notes.
This document contains a complete list of the API changes since the Xamarin.Mac 4.2 stable release.
Xamarin.Mac is based on the following open-source repositories: