Skip to content

Releases: Tencent/MMKV

v1.2.8

06 May 14:53
fdfe4ed
Compare
Choose a tag to compare

v1.2.8 / 2021-05-06

This will be the last version that supports armeabi arch on Android. To avoid some crashed on the old NDK (r16b), and make the most of a more stable libc++, we have decided to upgrade MMKV's building NDK in the next release. That means we can't support armeabi anymore.

We really appreciate your understanding.

Android

  • Migrate MMKV to Maven Central Repository. For versions older than v1.2.7 (including), they are still available on JCenter.
  • Add MMKV.disableProcessModeChecker(). There are some native crash reports due to the process mode checker. You can disable it manually.
  • For the same reason described above (native crashed), MMKV will now turn off the process mode checker on a non-debuggable app (aka, a release build).
  • For MMKV to detect whether the app is debuggable or not, when calling MMKV.initialize() to customize the root directory, a context parameter is required now.

iOS / macOS

  • Min iOS support has been upgrade to iOS 9.
  • Support building by Xcode 12.

Flutter

  • Support null-safety.
  • Upgrade to flutter 2.0.
  • Fix a crash on the iOS when calling encodeString() with an empty string value.

Known Issue on Flutter

  • When calling encodeString() with an empty string value on Android, decodeString() will return null. This bug will be fixed in the next version of Android Native Lib. iOS does not have such a bug.

Win32

  • Fix a compile error on Visual Studio 2019.

v1.2.7

25 Dec 06:58
d569193
Compare
Choose a tag to compare

v1.2.7 / 2020-12-25

Happy holidays everyone!

Changes for All platforms

  • Fix a bug when calling sync() with false won't do msync() asynchronous and won't return immediately.

Android

  • Fix an null pointer exception when calling putStringSet() with null.
  • Complete review of all MMKV methods about Java nullable/nonnull annotation.
  • Add API for MMKV.initialize() with both Context and LibLoader parammeters.

Flutter

  • Fix a crash on the iOS simulator when accessing the default MMKV instance.
  • Fix a bug on iOS when initing the default MMKV instance with a crypt key, the instance is still in plaintext.

Golang

Add golang for POSIX platforms. Most things actually work!. Check out the wiki for information.

MMKV for Golang

17 Dec 08:26
f81e077
Compare
Choose a tag to compare

Add MMKV support for Golang on POSIX platforms. Most things actually work!
Check out the wiki for more info.

v1.2.6

27 Nov 14:45
4a87d26
Compare
Choose a tag to compare

v1.2.6 / 2020-11-27

Changes for All platforms

  • Fix a file corruption when calling reKey() after removeKeys() has just been called.

Android

  • Fix compile error when MMKV_DISABLE_CRYPT is set.
  • Add a preprocess directive MMKV_DISABLE_FLUTTER to disable flutter plugin features. If you integrate MMKV by source code, and if you are pretty sure the flutter plugin is not needed, you can turn that off to save some binary size.

Flutter

Add MMKV support for Flutter on iOS & Android platform. Most things actually work!
Check out the wiki for more info.

v1.2.5

13 Nov 14:53
cd02c53
Compare
Choose a tag to compare

v1.2.5 / 2020-11-13

This is a pre-version for Flutter. The official Flutter plugin of MMKV will come out soon. Stay Tune!

iOS / macOS

  • Fix an assert error of encrypted MMKV when encoding some <NSCoding> objects.
  • Fix a potential leak when decoding duplicated keys from the file.
  • Add +[MMKV pageSize], +[MMKV version] methods.
  • Add +[MMKV defaultMMKVWithCryptKey:], you can encrypt the default MMKV instance now, just like the Android users who already enjoy this for a long time.
  • Rename -[MMKV getValueSizeForKey:] to -[MMKV getValueSizeForKey: actualSize:] to align with Android interface.

Android

  • Fix a potential crash when getting MMKV instances in multi-thread at the same time.
  • Add MMKV.version() method.

v1.2.4

21 Oct 09:08
19432b5
Compare
Choose a tag to compare

v1.2.4 / 2020-10-21

This is a hotfix mainly for iOS.

iOS / macOS

  • Fix a decode error of encrypted MMKV on some devices.

Android

  • Fix a potential issue on checking rootDir in multi-thread while MMKV initialization is not finished.

v1.2.3

16 Oct 14:20
28e867c
Compare
Choose a tag to compare

v1.2.3 / 2020-10-16

Changes for All platforms

  • Fix a potential crash on 32-bit devices due to pointer alignment issue.
  • Fix a decode error of encrypted MMKV on some 32-bit devices.

iOS / macOS

  • Fix a potential crc32() crash on some kind of arm64 devices.
  • Fix a potential crash after calling +[MMKV onAppTerminate].

Android

  • Fix a rare lock conflict on checkProcessMode().

POSIX

Add MMKV support for Python on POSIX platforms. Most things actually work!
Check out the wiki for more info.

MMKV for Python

02 Sep 09:40
66b3f41
Compare
Choose a tag to compare

Add MMKV support for Python on POSIX platforms. Most things actually work!
Check out the wiki for more info.

v1.2.2

02 Aug 16:14
464c710
Compare
Choose a tag to compare

v1.2.2 / 2020-07-30

iOS / macOS

  • Add auto clean up feature. Call +[MMKV enableAutoCleanUp:] to enable auto cleanup MMKV instances that not been accessed recently.
  • Fix a potential crash on devices under iPhone X.

Android

  • Add multi-process mode check. After so many issues had been created due to mistakenly using MMKV in multi-process mode in Android, this check is added. If an MMKV instance is accessed with SINGLE_PROCESS_MODE in multi-process, an IllegalArgumentException will be thrown.

POSIX

  • Add support for armv7 & arm64 arch on Linux.

v1.2.1

03 Jul 14:12
d34e25a
Compare
Choose a tag to compare

v1.2.1 / 2020-07-03

This is a hotfix version. Anyone who has upgraded to v1.2.0 should upgrade to this version immediately.

  • Fix a potential file corruption bug when writing a file that was created in versions older than v1.2.0. This bug was introduced in v1.2.0.
  • Add a preprocess directive MMKV_DISABLE_CRYPT to turn off MMKV encryption ability once and for all. If you integrate MMKV by source code, and if you are pretty sure encryption is not needed, you can turn that off to save some binary size.
  • The parameter relativePath (customizing a separate folder for an MMKV instance), has been renamed to rootPath. Making it clear that an absolute path is expected for that parameter.

iOS / macOS

  • -[MMKV mmkvWithID: relativePath:] is deprecated. Use -[MMKV mmkvWithID: rootPath:] instead.
  • Likewise, -[MMKV mmkvWithID: cryptKey: relativePath:] is deprecated. Use -[MMKV mmkvWithID: cryptKey: rootPath:] instead.