mirror of
https://github.com/Tencent/MMKV.git
synced 2026-10-17 04:30:56 +08:00
prepare for v1.2.8
This commit is contained in:
@@ -1,5 +1,32 @@
|
||||
# MMKV Change Log
|
||||
|
||||
## 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 / 2020-12-25
|
||||
Happy holidays everyone!
|
||||
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
Pod::Spec.new do |s|
|
||||
|
||||
s.name = "MMKV"
|
||||
s.version = "1.2.7"
|
||||
s.version = "1.2.8"
|
||||
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.2.7'
|
||||
s.dependency 'MMKVCore', '~> 1.2.8'
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Pod::Spec.new do |s|
|
||||
|
||||
s.name = "MMKVAppExtension"
|
||||
s.version = "1.2.7"
|
||||
s.version = "1.2.8"
|
||||
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.2.7'
|
||||
s.dependency 'MMKVCore', '~> 1.2.8'
|
||||
|
||||
end
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
Pod::Spec.new do |s|
|
||||
|
||||
s.name = "MMKVCore"
|
||||
s.version = "1.2.7"
|
||||
s.version = "1.2.8"
|
||||
s.summary = "MMKVCore for MMKV. MMKV is a cross-platform key-value storage framework developed by WeChat."
|
||||
|
||||
s.description = <<-DESC
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Pod::Spec.new do |s|
|
||||
|
||||
s.name = "MMKVWatchExtension"
|
||||
s.version = "1.2.7"
|
||||
s.version = "1.2.8"
|
||||
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.2.7'
|
||||
s.dependency 'MMKVCore', '~> 1.2.8'
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[](https://github.com/Tencent/MMKV/blob/master/LICENSE.TXT)
|
||||
[](https://github.com/Tencent/MMKV/pulls)
|
||||
[](https://github.com/Tencent/MMKV/releases)
|
||||
[](https://github.com/Tencent/MMKV/releases)
|
||||
[](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.2.7'
|
||||
// replace "1.2.7" with any available version
|
||||
implementation 'com.tencent:mmkv-static:1.2.8'
|
||||
// replace "1.2.8" with any available version
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
+2
-2
@@ -22,8 +22,8 @@ MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列
|
||||
|
||||
```gradle
|
||||
dependencies {
|
||||
implementation 'com.tencent:mmkv-static:1.2.7'
|
||||
// replace "1.2.7" with any available version
|
||||
implementation 'com.tencent:mmkv-static:1.2.8'
|
||||
// replace "1.2.8" with any available version
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
* Support null-safety.
|
||||
* Upgrade to Flutter 2.0.
|
||||
* Keep up with MMKV native lib v1.2.8, which migrates the Android Native Lib to Maven Central Repository.
|
||||
* Fix `MMKV.encodeString()` crash on iOS with an empty string.
|
||||
* Fix `MMKV.encodeString()` crash on iOS with an empty string value.
|
||||
|
||||
### Known Issue
|
||||
* When calling `MMKV.encodeString()` with an empty string value on Android, `MMKV.decodeString()` will return `null`. iOS does not have such bug.
|
||||
* When calling `MMKV.encodeString()` with an empty string value on Android, `MMKV.decodeString()` will return `null`. This bug will be fixed in the next version of Android Native Lib. iOS does not have such a bug.
|
||||
|
||||
## v1.2.8 / 2020-12-25
|
||||
* Keep up with MMKV native lib v1.2.7, which fix the `MMKV.sync(false)` not being asynchronous bug.
|
||||
|
||||
+8
-2
@@ -35,7 +35,10 @@ If you already include MMKV native lib in your App, you need to upgrade to versi
|
||||
#### iOS
|
||||
To avoid conflict of the native lib name 'libMMKV.so' on iOS, we need to **change the plugin name 'mmkv' to 'mmkvflutter'**.
|
||||
|
||||
* For a **purely flutter** App, add this function `fix_mmkv_plugin_name()` to `ios/Podfile`, invoke it **before** calling any `flutter_xxx()` functions. Run `pod install` and we are all set.
|
||||
##### For a purely flutter App:
|
||||
* Add this function `fix_mmkv_plugin_name()` to `ios/Podfile`, invoke it **before** calling any `flutter_xxx()` functions. Run `pod install` and we are all set.
|
||||
* **Note**: you need to run `pod install` each time you have called `flutter pub get`, or has just returned to Xcode from Android Studio.
|
||||
* We recommend **using Xcode** to debug iOS App.
|
||||
|
||||
```ruby
|
||||
def fix_mmkv_plugin_name(flutter_application_path)
|
||||
@@ -60,7 +63,10 @@ end
|
||||
fix_mmkv_plugin_name(File.dirname(File.realpath(__FILE__)))
|
||||
```
|
||||
|
||||
* For using **[flutter as a module](https://flutter.dev/docs/development/add-to-app/ios/project-setup#embed-the-flutter-module-in-your-existing-application)** to your existing iOS App, add the function `fix_mmkv_plugin_name()` above to your iOS App's `Podfile`, invoke it **before** calling any `flutter_xxx()` functions. Run `pod install` and we are all set.
|
||||
##### For using flutter as a module:
|
||||
* For **[embding flutter](https://flutter.dev/docs/development/add-to-app/ios/project-setup#embed-the-flutter-module-in-your-existing-application)** to your existing iOS App, add the function `fix_mmkv_plugin_name()` above to your iOS App's `Podfile`, invoke it **before** calling any `flutter_xxx()` functions. Run `pod install` and we are all set.
|
||||
* **Note**: you need to run `pod install` each time you have called `flutter pub get`, or has just returned to Xcode from Android Studio.
|
||||
* We recommend **using Xcode** to debug iOS App.
|
||||
|
||||
```ruby
|
||||
def fix_mmkv_plugin_name(flutter_application_path)
|
||||
|
||||
@@ -485,7 +485,7 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
MARKETING_VERSION = 1.2.7;
|
||||
MARKETING_VERSION = 1.2.8;
|
||||
"OTHER_LDFLAGS[sdk=iphoneos*]" = (
|
||||
"-framework",
|
||||
UIKit,
|
||||
@@ -528,7 +528,7 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
MARKETING_VERSION = 1.2.7;
|
||||
MARKETING_VERSION = 1.2.8;
|
||||
"OTHER_LDFLAGS[sdk=iphoneos*]" = (
|
||||
"-framework",
|
||||
UIKit,
|
||||
@@ -725,7 +725,7 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
MARKETING_VERSION = 1.2.7;
|
||||
MARKETING_VERSION = 1.2.8;
|
||||
"OTHER_LDFLAGS[sdk=iphoneos*]" = (
|
||||
"-framework",
|
||||
UIKit,
|
||||
@@ -763,7 +763,7 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
MARKETING_VERSION = 1.2.7;
|
||||
MARKETING_VERSION = 1.2.8;
|
||||
"OTHER_LDFLAGS[sdk=iphoneos*]" = (
|
||||
"-framework",
|
||||
UIKit,
|
||||
@@ -808,7 +808,7 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
MARKETING_VERSION = 1.2.7;
|
||||
MARKETING_VERSION = 1.2.8;
|
||||
"OTHER_LDFLAGS[sdk=iphoneos*]" = (
|
||||
"-framework",
|
||||
UIKit,
|
||||
@@ -855,7 +855,7 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
MARKETING_VERSION = 1.2.7;
|
||||
MARKETING_VERSION = 1.2.8;
|
||||
"OTHER_LDFLAGS[sdk=iphoneos*]" = (
|
||||
"-framework",
|
||||
UIKit,
|
||||
|
||||
+19
-6
@@ -56,8 +56,10 @@
|
||||
allowLocationSimulation = "YES"
|
||||
launchAutomaticallySubstyle = "8"
|
||||
notificationPayloadFile = "WatchApp Extension/PushNotificationPayload.apns">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.Carousel"
|
||||
RemotePath = "/MMKVDemo">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CBF19011243D6F59001C82ED"
|
||||
@@ -65,7 +67,7 @@
|
||||
BlueprintName = "WatchApp"
|
||||
ReferencedContainer = "container:MMKVDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</RemoteRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
@@ -75,8 +77,10 @@
|
||||
debugDocumentVersioning = "YES"
|
||||
launchAutomaticallySubstyle = "8"
|
||||
notificationPayloadFile = "WatchApp Extension/PushNotificationPayload.apns">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.Carousel"
|
||||
RemotePath = "/MMKVDemo">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CBF19011243D6F59001C82ED"
|
||||
@@ -84,7 +88,16 @@
|
||||
BlueprintName = "WatchApp"
|
||||
ReferencedContainer = "container:MMKVDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</RemoteRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CBF19011243D6F59001C82ED"
|
||||
BuildableName = "WatchApp.app"
|
||||
BlueprintName = "WatchApp"
|
||||
ReferencedContainer = "container:MMKVDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
|
||||
@@ -54,8 +54,10 @@
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.Carousel"
|
||||
RemotePath = "/MMKVDemo">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CBF19011243D6F59001C82ED"
|
||||
@@ -63,7 +65,7 @@
|
||||
BlueprintName = "WatchApp"
|
||||
ReferencedContainer = "container:MMKVDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</RemoteRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
@@ -71,8 +73,10 @@
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.Carousel"
|
||||
RemotePath = "/MMKVDemo">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CBF19011243D6F59001C82ED"
|
||||
@@ -80,7 +84,16 @@
|
||||
BlueprintName = "WatchApp"
|
||||
ReferencedContainer = "container:MMKVDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</RemoteRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CBF19011243D6F59001C82ED"
|
||||
BuildableName = "WatchApp.app"
|
||||
BlueprintName = "WatchApp"
|
||||
ReferencedContainer = "container:MMKVDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
|
||||
Reference in New Issue
Block a user