Xamarin.Essentials 1.5 release notes

Getting Started | What's New | Breaking Changes | Blogs | Thank you | Feedback | Open Source

What's New in this Release

This release is based off of AndroidX libraries when setting the compilation target to Android 10. To learn more read through the AndroidX blog post.

An API which takes a URL to navigate to, and an expected callback URI which defines a scheme the app should listen for a callback on. This is useful particularly for web authentication scenarios where you launch a url to start the authentication flow and await the callback to the app, usually with a token in the callback url.

WebAuthenticatorResult r = null;
if (scheme.Equals("Apple")
    && DeviceInfo.Platform == DevicePlatform.iOS
    && DeviceInfo.Version.Major >= 13)
{
    r = await AppleSignInAuthenticator.AuthenticateAsync();	
}
else
{
    var authUrl = new Uri(authenticationUrl + scheme);
    var callbackUrl = new Uri("xamarinessentials://");
    r = await WebAuthenticator.AuthenticateAsync(authUrl, callbackUrl);
}
AccessToken = r?.AccessToken;

Available in 1.5.1

  • VerticalAccuracy now available as a property in Location

Available in 1.5.2

  • IdToken now available in return from Web Authenticator
  • BrowserLaunchFlags introduced in Browser API for modal type on iOS and Launch Adjacent on Android

Available in 1.5.3

  • LegacyKeyHashFallback now available for SecureStorage that applies to Android

On Android, we have switched to hashing the key with crc64 instead of md5.

If SecureStorage.LegacyKeyHashFallback is true:

Any time GetAsync is called, if the (now, crc64) key does not exist, the old md5 key is also checked. If that exists, the value is saved under the new crc64 key, and the old md5 keyed entry is removed.

In SetAsync and RemoveAsync calls, the existence of old values stored with the md5 is checked for, and those are removed if they exist as well.

The current default is true and in the future releases will be turned off by default.

Release History

  • Monday, April 20, 2020 - Xamarin.Essentials 1.5.3
  • Friday, March 27, 2020 - Xamarin.Essentials 1.5.2
  • Tuesday, March 3, 2020 - Xamarin.Essentials 1.5.1
  • Wednesday, February 26, 2020 - Xamarin.Essentials 1.5.0
  • Thursday, February 20, 2020 - Xamarin.Essentials 1.5.0-pre1

Xamarin.Essentials 1.5.0

Issues Fixed

  • GH-1120 Enable Launcher compatibility with iOS 9.0
  • GH-1103 Add Vertical Accuracy and fixes before release.

Xamarin.Essentials 1.5.1

Issues Fixed

  • GH-1126 Fix TryOpenAsync in Launcher with Uri to actually launch
  • GH-1133 Fix UWP permissions that aren't supported to return correctly
  • GH-1136 Swizzle types for support in VS 2017
  • GH-1143 Fix for Pre-Android Q LocationAlways Permission
  • GH-1144 Enhance Theme Detection on iOS to use TraitCollection if VC is null

Xamarin.Essentials 1.5.2

Issues Fixed

  • GH-1184 Cache Android SdkInt - Optimization
  • GH-1192 Add IdToken to WebAuthenticator for Apple Sign In
  • GH-1180 Don't launch new task on Android for custom tabs.
  • GH-1182 Only encode non extension phone numbers on Android.
  • GH-1174 Fix battery permission check on Android
  • GH-1172 Fix iOS 13 check for Web Authenticator. Should fix build issues on VS 2017
  • GH-1171 Fix on UWP for Launcher.TryOpenAsync on newer OS
  • GH-1167 Fix for testing array length on Android sensors
  • GH-1162 Fix for iOS location permission when disabled (don't request)
  • GH-1155 Fix for additional checks on iOS window so you can check theme on startup
  • GH-1153 Fix memory leak on iOS Text to Speech
  • GH-1151 Check on Android for Q background location

Xamarin.Essentials 1.5.3

Issues Fixed

  • GH-1203 Fix UWP Capability Check on Permissions
  • GH-1209 Fix iOS TextToSpeech linker issue in Release Mode
  • GH-1220 Mitigate MD5 Usage in Secure Storage
  • GH-1229 Android Email will only open email apps now.
  • GH-1210 Fix for WebAuthenticator on iOS dialog getting GCed on first run

Breaking Changes

  • None

Blogs

Xamarin Blogs

Thank you

Thank you to our community for helping to make Xamarin.Essentials even better!

This release, we received amazing contributions from these individuals. Give them a big round of applause!

Author Description PR
Janus Weil (@janusw) Vertical Accuracy on Location #1103
Niklas Schilli (@Mrnikbobjeff) Several optimizations #1101
Ben Askren (@baskren) Fix iOS 13 memory leak in text to speech #1153

Feedback welcome

Your feedback is important to us. If you encounter problems with Xamarin.Essentials, check the Xamarin Forums and Xamarin.Forms GitHub for existing issues. Report new issues and suggestions on GitHub.

Open Source

Xamarin.Essentials 1.5.0 is based on the open-source Xamarin.Essentials repository: