Last Update: 3/5/2018 System Requirements
- Visual Studio 2017 – Visual Studio Installer
- Visual Studio 2017 for Mac – Stable updater channel
- Visual Studio 2015 Tools for Xamarin – Stable updater channel
- The latest features and API requires Xcode 9.2 and the bundled iOS, tvOS and watchOS SDKs;
- Apple Xcode 9.2 requires a Mac running OSX 10.12.6 (Sierra) or newer;
Your feedback is important to us. If there are any problems with this release, check the Xamarin.iOS 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.iOS correspond to our 15.6 (
- March 26, 2018 - Xamarin.iOS 18.104.22.168
- February 23, 2018 - Xamarin.iOS 22.214.171.124
- February 7, 2018 - Xamarin.iOS 126.96.36.199
- January 24, 2018 - Xamarin.iOS 188.8.131.52
- January 10, 2018 - Xamarin.iOS 184.108.40.206
You can learn more about how we ship our releases in the Visual Studio 2017 Release Rhythm document.
March 26, 2018 - Xamarin.iOS 220.127.116.11
This version is included in the Visual Studio 2017 version 15.6 Service Release 3.
- 3289 - [msbuild] "dyld: Library not loaded: @rpath/Mono.framework/Mono" when debugging tvOS
- 7472 - [runtime]
NullReferenceExceptionwhen trying to use an extension method on a
nullobject as an assignment value for an
February 23, 2018 - Xamarin.iOS 18.104.22.168
This version is included in the Visual Studio 2017 version 15.6 RTW release.
- 3241 - [llvm] Revert "[mini] Align stack when resuming to catch handler"
February 7, 2018 - Xamarin.iOS 22.214.171.124
This version is included in the Visual Studio 2017 version 15.6 Preview 4 release.
- 3089 - [coregraphics] Fix
- 3215 - [linker] Fix general
MT2001to report a useful
- 3241 - [mono] Fix runtime crash in
January 24, 2018 - Xamarin.iOS 126.96.36.199
This version is included in the Visual Studio 2017 version 15.6 Preview 3 release.
- 3140 - [vision] Removes incorrect
- 3145 - [scenekit] Crashes if
- 3146 - [scenekit]
SCNPhysicsWorld.ConvexSweepTestmethod doesn't work
- 6428 - [bcl]
DnsCallbackas async callback causing unhandled exception
- 52729 - [msbuild] Xamarin.Mac and Xamarin.iOS load mismatched assemblies in one build process
January 10, 2018 - Xamarin.iOS 188.8.131.52
This version is included in the Visual Studio 2017 version 15.6 Preview 2 release.
- 32022 - [foundation] Fix
NSDateseconds (decimal) precision loss when converting
- 37527 - [generator] Incorrect
BI1029 Internal errorreported (instead of
- 58227 - [photos] Fix incorrect
- 58544 - [msbuild] Set the target architecture in the Info.plist
- 58792 - [generator] Disallow the use of
[Async]when the signature contains ref/out parameters
- 59196 - [uikit]
UIAccessibility.RequestGuidedAccessSessioncompletion handler is an ObjC block
- 59379 - [msbuild] Codesign iOS Simulator builds using the '-' key. Fix 'App Groups' support on simulator for iOS11
- 59547 - [metalperformanceshaders] Premature collection possible in some bindings
- 59617 - [registrar] Fix static registrar to detect invalid type usage
- 59697 - [msbuild] Don't run Xamarin.Analysis on library projects
- 59756 - [msbuild] Force-Init AppleSdkSettings in
- 59798 - [mtouch] Show
MT0123if the executable assembly does not reference the product assembly
- 59848 - [msbuild] Fixed ObjC binding targets to delete target zip files before re-zipping
- 59911 - [audiotoolbox] Free the right
GCHandlewhen failing to create an
- 59928 - [storekit] Fix
- 59947 - [llvm][bitcode] Attempting to JIT compile method 'ExceptionTests:test1basicfiltercatch ()' while running in aot-only mode.
- 59994 - [runtime] Don't hold the framework lock when running managed code
- 60176 - [linker] Handle
ParameterInfopreserved from XML definitions
- 60303 - [homekit] Expose weakly-typed API since the constants are extensible
- 60377 - [msbuild] Fix possible confusion by similar provisioning profiles
- 60423 - [security] Add
[__NSCFDictionary UTF8String]: unrecognized selector sent to instance
- 60536 - [msbuild] Catch json parser exceptions to provide better error reporting
- 60545 - [mono] Multiple argument generic with contravariant interface as an argument causes MissingMethodException
- 60771 - [aot] Attempting to JIT compile method 'System.Runtime.CompilerServices.Unsafe:Add (byte&,int)' while running in aot-only mode
- 61039 - [mtouch] Fix
Xamarin.Sdk.frameworknot to link with private frameworks when trying to support older OS where they were not yet available
- 61056 - [arkit] Fix
Vertices, 'TextureCoordinates' and 'TriangleIndices' types in
- 3089 - [coreanimation] Ensure that we increase the handle reference count in MakeMutable
- 59572 - [msbuild] Emit a build error when
CFBundleIdentifieris null or empty
- 52570 - [generator] warn when
[Static]is used in a
- 53076 - [generator] Lack of error when [
Async]is used inside a type decorated with
- 57094 - [generator] Improve
BI1014to include the name of unsupported field and valid types
- 57795 - [generator] Allow
[BindAs]attribute for smart enum used in multidimensional arrays
- 57797 - [generator] Support
[BindAs]attribute for smart enums of an array of nullable types
- 57804 - [generator] Slightly incorrect error message when trying to use ref/out parameters with
- 58251 - [msbuild] Add support for optionally explaining why inapplicable certificates are not applicable
- 59278 - [security] Add missing item in
- 59296 - [coreimage] Some
kCI*keys are missing
- 59537 - [coreanimation]
CATextLayer.Alignment*strings should be
- 60280 - [mtouch][mmp] Allow the use of major-only version numbers in arguments
- 60537 - [localauthentication]
LABiometryType.TypeFaceIdenum name is not consistent
- 60541 - [foundation] Expose
Integrated Mono Features/Fixes
Additional information can be found in Mono release notes.
What's New in this Release
This release is built upon our open sourced SDK and offers the following new features:
- Support for wireless deployment and debugging
- Base Class Libraries (BCL) Debugging
- mtouch support for response file
- Xamarin.Analysis HttpClient handler rule
Support for wireless deployment and debugging
The new Apple TV 4K (5th generation) does not have an USB (C) connector, which is the usual way for developers to install and debug applications on devices.
Xamarin.iOS now has the capability to detect devices connected via network (Wi-Fi or Ethernet) and in combination with our latest Visual Studio for Mac release (Version 7.4 Preview 2) debugging over network is also possible.
Please take a look at the Visual Studio for Mac release notes for more details.
Base Class Libraries (BCL) Debugging
Developers can now step into the Base Class Libraries code as well as the Xamarin SDK source code while debugging their application. In order to be able to step into the BCL and Xamarin SDK in a project the following has to be configured:
Visual Studio for Mac
- Un-check the "Debug code project only; do not step into framework code" option via the Preferences > Debugger menu.
- Un-check the "Enable Just My Code" option via the Tools > Options > Debugging menu.
For iOS Simulator builds, the above steps are all that is required. To debug BCL or Xamarin SDK source on a device, add the
--debug:all flag as an extra mtouch argument. Open the Project > Properties ("Options" in Visual Studio for Mac) menu. New flags can be added to mtouch in the "iOS Build" panel via the textbox labeled "Additional mtouch arguments:". This flag should only be set when debugging is required and should be removed for production applications since it will greatly increase the size of the application.
mtouch support for response file
mtouch tool has a new option that accept arguments inside a response file.
- 56501 - MSB6002 command-line for MTouch task is too long, > 32000 characters / [mtouch/mmp/bgen] Add support for response files. (#2808)
The mentioned limit is for Windows and the default one for macOS is quite larger.
Xamarin.Analysis HttpClient handler rule
We added a new rule to our project analysis tool which recommends using a native
HttpClientHandler instead of the managed one for better performance, smaller executable size, and to easily support the newer standards.
As a reminder to run the rules, in Visual Studio for Mac's menu, select Project > Run Code Analysis.
Note: all existing rules are documented here.
Using an older Xcode version
Using an older Xcode version (than the one mentioned in the above requirements) is often possible, but some features may not be available. Also some limitations might requires workarounds, e.g.:
- The static registrar requires Xcode headers files to build applications, leading to
MT4109errors if API are missing. In most cases enabling the managed linker will help (by removing the API).
- Bitcode builds (for tvOS and watchOS) can fail submission to the App Store unless an Xcode 9.0+ toolchain is used.
The following documents contains a complete list of the API changes since the Xamarin.iOS 11.6 stable release: