Xamarin.iOS 12.14 Release Notes
System Requirements | What's New | Known Issues | Blogs | Open Source
To see installation instructions for both Visual Studio for Mac and Visual Studio 2019, please visit http://releases.xamarin.com/
- The latest features and APIs requires Xcode 10.2 and the bundled iOS, tvOS and watchOS SDKs
- Apple Xcode 10.2 requires a Mac running OSX 10.14.3 (Mojave) or newer
What's New in this Release
This version of Xamarin.iOS corresponds to our 16.2 (
- August 5, 2019 - Xamarin.iOS 18.104.22.168
- July 15, 2019 - Xamarin.iOS 22.214.171.124
- June 6, 2019 - Xamarin.iOS 126.96.36.199
You can learn more about how we ship our releases in the Visual Studio 2019 Release Rhythm document.
August 5, 2019 - Xamarin.iOS 188.8.131.52
This version is included in Visual Studio for Mac 8.2 service release 2.
- 6665 - Support installing on macOS 10.15
July 15, 2019 - Xamarin.iOS 184.108.40.206
This version is included in Visual Studio for Mac 8.2 preview 5.
- 4864 - [watchOS] Implement support for ARM64_32
- 5941 - [metal] Sprinkle
[return: Release]on all 'new*' selectors
- 6135 - [generator] Fix generation of ReturnRelease code for third-party bindings
- 6148 - [generator] Check if an object/pointer is null before trying to call release on it
- 6179 - [generator] Don't print multiple
- 6216 - [simulator] Fix issue starting a simulator after installed Xcode 11 beta
- 6356 - [coregraphics] Fix lifetime of delegates passed to
June 6, 2019 - Xamarin.iOS 220.127.116.11
This version is included in Visual Studio for Mac 8.2 preview 1.
6016 - [foundation] Updated
NSUrlSessionHandlerto support TLS 1.3.
5987 - [msbuild] Add more details to MSBuild errors for provisioning profiles.
4170 - [foundation] Add custom trust/certificate validation to NSUrlSessionHandler.
Basic application (size) for doing an
HttpClient.GetAsync, release/llvm, 64bits only
- NSUrlSessionHandler (master): 6.4 MB
- NSUrlSessionHandler (PR #5936): 7.7 MB
- NSUrlSessionHandler (this PR): 6.4 MB
The size increase occurs because of the reference to .NET X509* types. This brings a lot of additional code, including managed cryptographic code, inside the application. Even when the feature is not used.
The solution is to expose an API that only use native (OS) types, which are mostly already part of the application. This has a very low impact on existing applications.
It's still possible to hook back to .NET validation if needed (it should not in most cases) but, in this case, the extra price will only be paid if used (and can be lower if the code is needed by something else from the application).
In comparison using other HttpClient handler produce app sizes of:
- HttpClientHandler (managed): 10.4 MB
- CFNetworkHandler: 6.8 MB
3655 - [linker] The custom attributes removal step is now optional. This is useful in cases where one or many custom attributes are required by the application at runtime (e.g: the
assemblyattribute). While not ideal, disabling this single step is much better than disabling linking for the whole application.
- 6008 - [msbuild] Lock variables accessed in a
Parallel.ForEachcallback since the callback must be thread-safe because it's executed in parallel using multiple threads.
- 13483 - [msbuild] Add reference to
System.Drawing.Common.dllto Xamarin.iOS projects to fix compilation issues.
- 5171 - [runtime] Improved marshalling of out/ref parameters, arrays, classes and selectors to avoid exceptions such as: "Unable to marshal byref parameter type".
CS0246 / Build failure for missing System.Drawing types
Some existing projects might not compile anymore and generated a
CS0246 error like:
x.cs(1,1): error CS0246: The type or namespace name 'SizeF' could not be found (are you missing a using directive or an assembly reference?)
Workaround: Manually add a reference to the
This issue is tracked in 13483.
Submitting an application to the AppStore might result in a rejection like this one:
Non-public API usage:
- The app references non-public symbols in APP: _FSEventStreamCreate, _FSEventStreamInvalidate, _FSEventStreamRelease, _FSEventStreamScheduleWithRunLoop, _FSEventStreamStart, _FSEventStreamStop, _FSEventStreamUnscheduleFromRunLoop
Workaround: Ensure the managed linker is enabled (e.g. Link Framework SDKs Only or Link All).
This issue is tracked in 14290.
Using an older Xcode version
Using an older Xcode version (than the one mentioned in the above requirements) is often possible. For more information see the following documentation.
The following documents contains a complete list of the API changes since the Xamarin.iOS 12.10 stable release:
Integrated Mono Features/Fixes
Xamarin.iOS uses a customized runtime and base class libraries (BCL) from Mono 6.0 Commit e6f5369
Your feedback is important to us. If there are any problems with this release, check the Xamarin.iOS Forums and Xamarin Mac/iOS Github Repository for existing issues. If you do not find any matching issue, please feel free to start a new discussion and report an issue.
Xamarin.iOS is based on the following open-source repositories:
- xamarin-macios branch
- mono branch
A big Thank You! to external contributors who made improvements in this release: firstname.lastname@example.org