diff --git a/Android/MMKV/gradle.properties b/Android/MMKV/gradle.properties index a7049f1c..2d518bfc 100644 --- a/Android/MMKV/gradle.properties +++ b/Android/MMKV/gradle.properties @@ -14,6 +14,6 @@ org.gradle.jvmargs=-Xmx1536m # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true -VERSION_NAME_PREFIX=1.1.0 +VERSION_NAME_PREFIX=1.1.1 #VERSION_NAME_SUFFIX=-SNAPSHOT VERSION_NAME_SUFFIX= \ No newline at end of file diff --git a/Android/MMKV/mmkv/build.gradle b/Android/MMKV/mmkv/build.gradle index 43672b7a..14fcc807 100644 --- a/Android/MMKV/mmkv/build.gradle +++ b/Android/MMKV/mmkv/build.gradle @@ -1,8 +1,8 @@ apply from: rootProject.file('gradle/build_library.gradle') android { -// defaultPublishConfig "StaticCppRelease" - defaultPublishConfig "SharedCppRelease" + defaultPublishConfig "StaticCppRelease" +// defaultPublishConfig "SharedCppRelease" defaultConfig { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" externalNativeBuild { diff --git a/Android/MMKV/mmkvdemo/build.gradle b/Android/MMKV/mmkvdemo/build.gradle index 368f0424..5916ac36 100644 --- a/Android/MMKV/mmkvdemo/build.gradle +++ b/Android/MMKV/mmkvdemo/build.gradle @@ -62,9 +62,9 @@ repositories { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation project(':mmkv') -// implementation 'com.tencent:mmkv:1.1.0' -// implementation 'com.tencent:mmkv-static:1.1.0' +// implementation project(':mmkv') +// implementation 'com.tencent:mmkv:1.1.1' + implementation 'com.tencent:mmkv-static:1.1.1' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bab4bd5..400a633b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # MMKV Change Log +## v1.1.1 / 2020-04-13 + +### iOS / macOS + +* Support WatchOS. +* Rename `+[MMKV onExit]` to `+[MMKV onAppTerminate]`, to avoid naming conflict with some other OpenSource projects. +* Make background write protection much more robust, fix a potential crash when writing meta info in background. +* Fix a potential data corruption bug when writing a UTF-8 (non-ASCII) key. + +### Android + +* Fix a crash in the demo project when the App is hot reloaded. +* Improve wiki & readme to recommend users to init & destruct MMKV in the `Application` class instead of on the `MainActivity` class. + +### POSIX +* Fix two compile errors with some compilers. + ## v1.1.0 / 2020-03-24 This is the first **major breaking version** ever since MMKV was made public in September 2018, introducing bunches of improvement. Due to the Covid-19, it has been delayed for about a month. Now it's finally here! diff --git a/MMKV.podspec b/MMKV.podspec index 81309e3e..a0274a16 100644 --- a/MMKV.podspec +++ b/MMKV.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "MMKV" - s.version = "1.1.0" + s.version = "1.1.1" s.summary = "MMKV is a cross-platform key-value storage framework developed by WeChat." s.description = <<-DESC @@ -30,7 +30,7 @@ Pod::Spec.new do |s| "CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF" => "NO", } - s.dependency 'MMKVCore', '~> 1.1.0' + s.dependency 'MMKVCore', '~> 1.1.1' end diff --git a/MMKVAppExtension.podspec b/MMKVAppExtension.podspec index c5220f01..ac2f9e99 100644 --- a/MMKVAppExtension.podspec +++ b/MMKVAppExtension.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "MMKVAppExtension" - s.version = "1.1.0" + s.version = "1.1.1" s.summary = "MMKV is a cross-platform key-value storage framework developed by WeChat." s.module_name = "MMKVAppExtension" @@ -31,7 +31,7 @@ Pod::Spec.new do |s| "GCC_PREPROCESSOR_DEFINITIONS" => "MMKV_IOS_EXTENSION", } - s.dependency 'MMKVCore', '~> 1.1.0' + s.dependency 'MMKVCore', '~> 1.1.1' end diff --git a/MMKVWatchExtension.podspec b/MMKVWatchExtension.podspec index adfd72fc..6408629c 100644 --- a/MMKVWatchExtension.podspec +++ b/MMKVWatchExtension.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "MMKVWatchExtension" - s.version = "1.1.0" + s.version = "1.1.1" s.summary = "MMKV is a cross-platform key-value storage framework developed by WeChat." s.module_name = "MMKVWatchExtension" @@ -31,7 +31,7 @@ Pod::Spec.new do |s| "GCC_PREPROCESSOR_DEFINITIONS" => "MMKV_IOS_EXTENSION", } - s.dependency 'MMKVCore', '~> 1.1.0' + s.dependency 'MMKVCore', '~> 1.1.1' end diff --git a/README.md b/README.md index 00f10198..8864a570 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![license](https://img.shields.io/badge/license-BSD_3-brightgreen.svg?style=flat)](https://github.com/Tencent/MMKV/blob/master/LICENSE.TXT) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Tencent/MMKV/pulls) -[![Release Version](https://img.shields.io/badge/release-1.1.0-brightgreen.svg)](https://github.com/Tencent/MMKV/releases) +[![Release Version](https://img.shields.io/badge/release-1.1.1-brightgreen.svg)](https://github.com/Tencent/MMKV/releases) [![Platform](https://img.shields.io/badge/Platform-%20Android%20%7C%20iOS%2FmacOS%20%7C%20Win32%20%7C%20POSIX-brightgreen.svg)](https://github.com/Tencent/MMKV/wiki/home) 中文版本请参看[这里](./readme_cn.md) @@ -28,8 +28,8 @@ Add the following lines to `build.gradle` on your app module: ```gradle dependencies { - implementation 'com.tencent:mmkv-static:1.1.0' - // replace "1.1.0" with any available version + implementation 'com.tencent:mmkv-static:1.1.1' + // replace "1.1.1" with any available version } ``` diff --git a/iOS/MMKV/MMKV.xcodeproj/project.pbxproj b/iOS/MMKV/MMKV.xcodeproj/project.pbxproj index b735b756..22108d31 100644 --- a/iOS/MMKV/MMKV.xcodeproj/project.pbxproj +++ b/iOS/MMKV/MMKV.xcodeproj/project.pbxproj @@ -29,7 +29,7 @@ CBF19044243D706D001C82ED /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB1FD4CC2046ACBC00931B5F /* Foundation.framework */; }; CBF19046243D706D001C82ED /* MMKVHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = CBDF328F2192C0000028DB4D /* MMKVHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; CBF19047243D706D001C82ED /* MMKV.h in Headers */ = {isa = PBXBuildFile; fileRef = CB1FD4942046984F00931B5F /* MMKV.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CBF1907F243D7627001C82ED /* libMMKVWatchCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CBF19079243D70FD001C82ED /* libMMKVWatchCore.a */; }; + CBF1907F243D7627001C82ED /* libMMKVCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CBF19079243D70FD001C82ED /* libMMKVCore.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -135,7 +135,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - CBF1907F243D7627001C82ED /* libMMKVWatchCore.a in Frameworks */, + CBF1907F243D7627001C82ED /* libMMKVCore.a in Frameworks */, CBF19042243D706D001C82ED /* libz.tbd in Frameworks */, CBF19044243D706D001C82ED /* Foundation.framework in Frameworks */, ); @@ -192,7 +192,7 @@ isa = PBXGroup; children = ( CB6F6C0123ACCF47000351EA /* libMMKVCore.a */, - CBF19079243D70FD001C82ED /* libMMKVWatchCore.a */, + CBF19079243D70FD001C82ED /* libMMKVCore.a */, ); name = Products; sourceTree = ""; @@ -372,10 +372,10 @@ remoteRef = CB6F6C0023ACCF47000351EA /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - CBF19079243D70FD001C82ED /* libMMKVWatchCore.a */ = { + CBF19079243D70FD001C82ED /* libMMKVCore.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; - path = libMMKVWatchCore.a; + path = libMMKVCore.a; remoteRef = CBF19078243D70FD001C82ED /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -485,7 +485,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.9; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.1.1; "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "-framework", UIKit, @@ -530,7 +530,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.9; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.1.1; "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "-framework", UIKit, @@ -736,7 +736,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.9; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.1.1; "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "-framework", UIKit, @@ -776,7 +776,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.9; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.1.1; "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "-framework", UIKit, @@ -822,7 +822,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.9; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.1.1; "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "-framework", UIKit, @@ -831,7 +831,7 @@ "-framework", UIKit, ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.MMKVAppExtension; + PRODUCT_BUNDLE_IDENTIFIER = com.tencent.MMKVWatchExtension; PRODUCT_NAME = MMKV; SDKROOT = watchos; SKIP_INSTALL = YES; @@ -869,7 +869,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.9; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.1.1; "OTHER_LDFLAGS[sdk=iphoneos*]" = ( "-framework", UIKit, @@ -878,7 +878,7 @@ "-framework", UIKit, ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.MMKVAppExtension; + PRODUCT_BUNDLE_IDENTIFIER = com.tencent.MMKVWatchExtension; PRODUCT_NAME = MMKV; SDKROOT = watchos; SKIP_INSTALL = YES; diff --git a/readme_cn.md b/readme_cn.md index 0c44ed5c..3c6d03a9 100644 --- a/readme_cn.md +++ b/readme_cn.md @@ -22,8 +22,8 @@ MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列 ```gradle dependencies { - implementation 'com.tencent:mmkv-static:1.1.0' - // replace "1.1.0" with any available version + implementation 'com.tencent:mmkv-static:1.1.1' + // replace "1.1.1" with any available version } ```