Releases: Tencent/MMKV
v1.2.8
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, acontext
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 returnnull
. 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
v1.2.7 / 2020-12-25
Happy holidays everyone!
Changes for All platforms
- Fix a bug when calling
sync()
withfalse
won't domsync()
asynchronous and won't return immediately.
Android
- Fix an null pointer exception when calling
putStringSet()
withnull
. - Complete review of all MMKV methods about Java nullable/nonnull annotation.
- Add API for
MMKV.initialize()
with bothContext
andLibLoader
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
Add MMKV support for Golang on POSIX platforms. Most things actually work!
Check out the wiki for more info.
v1.2.6
v1.2.6 / 2020-11-27
Changes for All platforms
- Fix a file corruption when calling
reKey()
afterremoveKeys()
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
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
v1.2.3
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
Add MMKV support for Python on POSIX platforms. Most things actually work!
Check out the wiki for more info.
v1.2.2
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, anIllegalArgumentException
will be thrown.
POSIX
- Add support for armv7 & arm64 arch on Linux.
v1.2.1
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 torootPath
. 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.