Skip to content

Releases: Tencent/MMKV

v1.3.1

11 Aug 08:09
09c165e
Compare
Choose a tag to compare

v1.3.1 / 2023-8-11

This is a hotfix version. It's highly recommended that v1.2.16 & v1.3.0 users upgrade as soon as possible.

Changes for All platforms

  • Fix a critical bug that might cause multi-process MMKV corrupt. This bug was introduced in v1.2.16.
  • Add the ability to filter expired keys on count() & allKeys() methods when auto key expiration is turn on.
  • Reduce the msync() call on newly created MMKV instances.

v1.3.0

14 Jun 12:03
ebc5f3f
Compare
Choose a tag to compare

v1.3.0 / 2023-06-14

Changes for All platforms

  • Add auto key expiration feature. Note that this is a breaking change, once upgrade to auto expiration, the MMKV file is not valid for older versions of MMKV (v1.2.16 and below) to correctly operate.
  • Rollback the lazy load optimization due to reported ANR issues. It was introduced in v1.2.16.

iOS & macOS

  • Fix a potential memory leak on setting a new value for an existing key.
  • Upgrade min support target to iOS 11 / macOS 10.13 / tvOS 13 / watchOS 4.

Win32

  • Fix a bug that might fail to truncate the file size to a smaller size in some cases.

Flutter

  • The version of MMKV for Flutter is now the same as the MMKV native library.

v1.2.16

20 Apr 10:42
dfb44db
Compare
Choose a tag to compare

v1.2.16 / 2023-04-20

Changes for All platforms

  • Optimization: The actual file content is lazy loaded now, saving time on MMKV instance creation, and avoiding lock waiting when a lot of instances are created at the same time.
  • Fix a bug when restoring a loaded MMKV instance the meta file might mistakenly report corrupted.

Android

  • Optimization: Remove unnecessary binder call on main process instantiation.

Flutter

  • Fix a crash on decoding an empty list.
  • Remove deprecated dependence.
  • Make the script more robust to fix the iOS Flutter plugin name.

Win32

  • Fix a string format bug on the MinGW64 environment.

golang

  • Fix a build error on 32-bit OS.

v1.2.15

12 Jan 11:41
c09632c
Compare
Choose a tag to compare

v1.2.15 / 2023-01-12

Changes for All platforms

  • Log handler now handles all logs from the very beginning, especially the logs in initialization.
  • Log handler register method is now deprecated. It's integrated with initialize().
  • Fix a bug that lock()/unlock()/try_lock() is not thread-safe.

Flutter

  • Reduce the privacy info needed to obtain android sdkInt, avoid unnecessary risk on Android App Review.

iOS & macOS

  • Fix a compile error on macOS.
  • Fix a bug that some ObjC exceptions are not being caught.
  • Add assert on nil MMKV base path, protect from mis-using MMKV in global variable initialization.
  • Starting from v1.2.15, one must call +[MMKV initializeMMKV:] manually before calling any MMKV methods.

golang

  • Fix a compile error on GCC.

Win32

  • Support CMake project on Windows.

v1.2.14

10 Aug 06:36
f58cf4b
Compare
Choose a tag to compare

v1.2.14 / 2022-08-10

Changes for All platforms

  • Fix a bug that MMKV.getXXX() may return invalid results in multi-process mode.

Android

  • Return [] instead of null on empty StringSet from MMKV.decodeStringSet() methods.
  • Upgrade Android Compile & Target SDK to 32.

iOS

  • Protect from the crash in -[MMKV getObject:forKey:] method when the key-value doesn't exist.

v1.2.13

30 Mar 04:52
96f0a15
Compare
Choose a tag to compare

v1.2.13 / 2022-03-30

Android

  • Fix crash on using Ashmem while MMKV_DISABLE_CRYPT macro is defined.

iOS

  • Add ability to retrieve key existece while getting value, aka -[MMKV getXXX:forKey:hasValue:] methods.

POSIX

  • Add ability to retrieve key existece while getting value, aka MMKV::getXXX(key, defaultValue, hasValue) methods.

Win32

  • Add ability to retrieve key existece while getting value, aka MMKV::getXXX(key, defaultValue, hasValue) methods.

v1.2.12

17 Jan 07:33
eef91a7
Compare
Choose a tag to compare

v1.2.12 / 2022-01-17

Changes for All platforms

  • Fix a bug that a subsequential clearAll() call may fail to take effect in multi-process mode.
  • Hide some OpenSSL symbols to prevent link-time symbol conflict, when an App somehow also static linking OpenSSL.

Android

  • Upgrade compileSdkVersion & targetSdkVersion from 30 to 31.

v1.2.11

26 Oct 08:41
793784c
Compare
Choose a tag to compare

v1.2.11 / 2021-10-26

Android

  • Due to increasing report about crash inside STL, we have decided to make MMKV static linking libc++ by default. Starting from v1.2.11, com.tencent:mmkv-static is the same as com.tencent:mmkv.
  • For those still in need of MMKV with shared linking of libc++_shared, you could use com.tencent:mmkv-shared instead.
  • Add backup & restore ability.

iOS / macOS

  • Add backup & restore ability.
  • Support tvOS.
  • Fix a compile error on some old Xcode.

Flutter (v1.2.12)

  • Add backup & restore ability.

POSIX / golang / Python

  • Add backup & restore ability.
  • Fix a compile error on Gentoo.

Win32

  • Add backup & restore ability.

v1.2.10

25 Jun 11:33
cce5ebe
Compare
Choose a tag to compare

v1.2.10 / 2021-06-25

This version is mainly for Android & Flutter.

Android

  • Complete JavaDoc documentation for all public methods, classes, and interfaces. From now on, you can find the API reference online.
  • Drop the support of armeabi arch. Due to some local build cache mistake, the last version (v1.2.9) of MMKV still has an unstripped armeabi arch inside. This is fixed.
  • Change MMKV.mmkvWithID() from returning null to throwing exceptions on any error.
  • Add MMKV.actualSize() to get the actual used size of the file.
  • Mark MMKV.commit() & MMKV.apply() as deprecated, to avoid some misuse after migration from SharedPreferences to MMKV.

Flutter (v1.2.11)

  • Bug Fixed: When building on iOS, occasionally it will fail on symbol conflict with other libs. We have renamed all public native methods to avoid potential conflict.
  • Keep up with MMKV native lib v1.2.10.

v1.2.9

26 May 10:46
217970f
Compare
Choose a tag to compare

v1.2.9 / 2021-05-26

This version is mainly for Android & Flutter.

Android

  • Drop the support of armeabi arch. As has been mention in the last release, to avoid some crashes on the old NDK (r16b), and make the most of a more stable libc++, we have decided to upgrade MMKV's building NDK in this release. That means we can't support armeabi anymore. Those who still in need of armeabi can build from sources by following the instruction in the wiki.

We really appreciate your understanding.

Flutter (v1.2.10)

  • Bug Fixed: When calling MMKV.encodeString() with an empty string value on Android, MMKV.decodeString() will return null.
  • Bug Fixed: After upgrading from Flutter 1.20+ to 2.0+, calling MMKV.defaultMMKV() on Android might fail to load, you can try calling MMKV.defaultMMKV(cryptKey: '\u{2}U') with an encrytion key '\u{2}U' instead.
  • Keep up with MMKV native lib v1.2.9.