Releases: Tencent/MMKV
v1.2.11
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 ascom.tencent:mmkv
. - For those still in need of MMKV with shared linking of
libc++_shared
, you could usecom.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
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 returningnull
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
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 returnnull
. - Bug Fixed: After upgrading from Flutter 1.20+ to 2.0+, calling
MMKV.defaultMMKV()
on Android might fail to load, you can try callingMMKV.defaultMMKV(cryptKey: '\u{2}U')
with an encrytion key'\u{2}U'
instead. - Keep up with MMKV native lib v1.2.9.
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.