System RequirementsWhat's NewKnown IssuesBlogsOpen Source

Installing

  • Visual Studio 2017 version 15.6 Preview – Visual Studio Preview Installer
  • Visual Studio 2017 for Mac – Beta updater channel
  • Visual Studio 2015 Tools for Xamarin – Beta updater channel

Requirements

  • 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;

Feedback

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

Release History

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

  • January 10, 2018 - Xamarin.iOS 10.8.0.1

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

January 10, 2018 - Xamarin.iOS 10.8.0.1

This version is included in the Visual Studio 2017 version 15.5 Preview 2 release.

Issues Fixed

  • 32022 - [foundation] Fix DateTime from NSDate seconds (decimal) precision loss when converting
  • 37527 - [generator] Incorrect BI1029 Internal error reported (instead of BI1113)
  • 58227 - [photos] Fix incorrect SDPHLivePhotoFrameProcessingBlock signature
  • 58544 - [msbuild] Set the target architecture in the Info.plist UIRequiredDeviceCapabilities
  • 58792 - [generator] Disallow the use of [Async] when the signature contains ref/out parameters
  • 59196 - [uikit] UIAccessibility.RequestGuidedAccessSession completion 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 DetectSdkLocationsTaskBase
  • 59798 - [mtouch] Show MT0123 if 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 GCHandle when failing to create an InputAudioQueue
  • 59928 - [storekit] Fix SKCloudServiceSetupOptions strong dictionary's Action
  • 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 ParameterInfo preserved 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 RequestSharedWebCredential overload fixing [__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.framework not 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 ARFaceGeometry
  • 3089 - [coreanimation] Ensure that we increase the handle reference count in MakeMutable

Breaking Changes

  • 59572 - [msbuild] Emit a build error when CFBundleIdentifier is null or empty

Enhancements

  • 52570 - [generator] warn when [Static] is used in a [Category]
  • 53076 - [generator] Lack of error when [Async] is used inside a type decorated with [Protocol]
  • 57094 - [generator] Improve BI1014 to 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 [BindAs] attributes
  • 58251 - [msbuild] Add support for optionally explaining why inapplicable certificates are not applicable
  • 59278 - [security] Add missing item in SecStatusCode enum
  • 59296 - [coreimage] Some kCI*keys are missing
  • 59537 - [coreanimation] CATextLayer.Alignment* strings should be CATextLayerAlignment enum
  • 60280 - [mtouch][mmp] Allow the use of major-only version numbers in arguments
  • 60537 - [localauthentication] LABiometryType.TypeFaceId enum name is not consistent
  • 60541 - [foundation] Expose initWithDictionary:copyItems: in NS[Mutable]Array

Integrated Mono Features/Fixes

Xamarin.iOS uses a customized runtime and base class librairies (BCL) from Mono 5.11 (hash).

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

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

mtouch support for response file

The 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.

Known Issues

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 MT0091 or MT4109 errors 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.

API Diff

The following documents contains a complete list of the API changes since the Xamarin.iOS 11.4 stable release:

Open Source

Xamarin.iOS 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.