This section provides an overview of changes introduced in the Secure Storage SDK to facilitate the integration of the SDK and provide information on backward compatibility.
Version 5.3.0
Android
Target API level increased to Android 14 (API 34)
The target version of the SDK has been increased to Android 14 with API level 34.
Previous versions
Version 5.1.0
iOS
Bitcode support has been eliminated
Following the deprecation of bitcode by Apple, we have removed all bitcode from the SDK framework.
Version 5.0.0
All platforms
Biometric protection - new ways to enhance storage protection
New options have been added to the API which provide the ability to require a passcode or biometric authentication for initializing the storage. The Protection option is set when the write function is called. With this, it is now possible to protect the keys with biometry. For more information, see the technical documentation included in the product package.
Android
Target API increased to 33
To meet the latest requirements for apps published on the Google Play Store, the target version of the SDK has been increased to Android 13 with API level 33.
SDK source code now in Kotlin
The SDK has been rewritten in Kotlin.
New interface for Secure Storage APIs
A new interface called SecureStorage is included in the product package and contains the public APIs for the SDK. To instantiate the Secure Storage SDK instance, use the createSecureStorage method from the companion object of the SecureStorage interface.
Updates to technical documentation and tutorials
The technical documentation and the sample apps included in the product package have been updated. The sample apps include new flavor examples for Kotlin and Java implementations.
iOS
SDK source code now in Swift
The SDK has been rewritten in Swift.
New asynchronous API
The Secure Storage SDK 5 comes with new asynchronous APIs replacing the old synchronous APIs. This is a result of changing the architecture of the SDK to fix the unhandled threading issues in the previous versions. The new API allows us to do heavy operations like reading and writing of the storage without blocking the main thread. And it makes the secure storage instance thread safe.
To use the asynchronous API, you need to add:
- Await functions to Swift calls
- Completion handler parameter to Objective-C calls
Enhanced error handling and thread management
Error handling has been enhanced. The SDK now provides more information when an error is thrown, and stack traces are available to facilitate tracing errors if thrown in multiple locations. Also, thread management has been improved.
Updates to technical documentation and sample
The technical documentation and the sample application included in the product package have been updated.
4.29.0
Android
Target API increased to Android 12 (API 31)
To meet new requirements for apps published on the Google Play Store, the target version of the SDK has been increased to Android 12 with API 31. This change is needed to avoid APK rejection caused by security issues found with the older API versions.
Minimum supported version increased to Android 6 (API 23)
The minimum supported version has been increased to fully support new features and devices. Deprecated code has been replaced and simplified to be compatible with API 23.
iOS
Increased the minimum supported version to iOS 13
The minimum supported version has been increased to fully support all arm64 devices and SwiftUI features. Deprecated code has been removed and replaced with code fully supporting iOS 13 and later.
Fixed internal error conversion issues
Error codes converted between Objective-C and Swift need to have the NSCustomError setting implemented to display the correct value. Without this setting, the wrong codes could be displayed from the enum. The setting has been implemented in all the remaining error handling objects.
Version 4.28.2
Android
Delivering AAR file instead of JAR
AAR files are the current standard for Android libraries. For this reason, the JAR file has been replaced with an AAR file. For more information, see Integrate the Secure Storage SDK with Android or refer to the sample included in the product package.
iOS
API updates – NSErrors API support for Objective-C added
The Objective-C API points no longer throw an NSException. All API points that previously would throw such an NSException now require an NSError pointer. If an error occurs, it will be attached to the pointer that is provided as parameter. Refer to the Objective-C sample included in the product package for full code examples.
Change of framework name to MSSSecureStorage
The framework name has been changed from SecureStorageSDK to MSSSecureStorage. To use the new Objective-C API, replace all previous SecureStorageSDK imports with #import <MSSSecureStorage/MSSSecureStorage.h>.