1830 Commits

Author SHA1 Message Date
Toby 4517b252cc fix(flutter): 修复 SwiftPM 动态链接 MMKV 2026-08-20 17:20:23 +08:00
guoling e239b30858 Fix Flutter SwiftPM FFI symbol exports #1676 2026-08-20 15:53:34 +08:00
guoling cae12b2bc2 Add reusable generated-artifact cleanup script 2026-08-19 15:27:34 +08:00
guoling 86d1fe6d02 Fix Windows C bridge compilation #1681 2026-08-18 20:24:46 +08:00
guoling bd7c8e6d9f Keep Flutter MMKV Core linked with SwiftPM #1676 2026-08-10 15:00:17 +08:00
Guo Ling 10cfef6332 Merge pull request #1680 from qr243vbi/dev 2026-08-09 11:54:12 +08:00
qr243vbi 2b2f9deaf5 Update PBUtility.h 2026-08-09 11:45:07 +08:00
guoling c79b7a59d5 Harden backup and restore file handling 2026-08-05 13:39:29 +08:00
guoling 7b20c03c34 Harden encrypted write and key handling 2026-08-05 13:39:29 +08:00
guoling fd0b664940 Fix KMP expiration and UTF-8 consistency 2026-08-05 13:39:29 +08:00
guoling 4500cff761 Preserve KMP string and empty byte values 2026-08-04 21:46:13 +08:00
guoling 8e9883ef6f Fix one-year expiration constants 2026-08-04 21:40:24 +08:00
guoling c21236d085 Harden directory walking for long paths 2026-08-04 21:32:25 +08:00
guoling dc9a604498 Harden encrypted MMKV key lifecycle 2026-08-04 21:28:36 +08:00
guoling 92bd98dca0 Fix secure wipe build failure on iOS #1675
Avoid the optional memset_s and explicit_bzero APIs by using volatile byte stores on non-Windows platforms.
2026-07-31 11:14:46 +08:00
guoling 01cb6aa51c add auther email for ohpm package 2026-07-30 16:19:51 +08:00
guoling aba19d49df update change log 2026-07-30 14:47:23 +08:00
guoling b97eafecc6 update changelog date 2026-07-29 20:41:11 +08:00
guoling 4287c37f45 prepare for v2.4.1 2026-07-29 20:37:56 +08:00
guoling b48ffdd8ba Polish experimental KMP support for v2.4.1 2026-07-29 16:22:05 +08:00
guoling 4e3535f2c8 Harden MMKV close lifecycle handling #1669 2026-07-29 14:57:14 +08:00
guoling f3b27766a2 fix MMKV instance lifecycle handling #1669 2026-07-28 19:35:21 +08:00
guoling e3060b1a34 Polish v2.4.1 release docs and Central handoff
Document KMP in the root readmes and complete the v2.4.1 release settings. Automatically transfer completed Gradle maven-publish uploads from the OSSRH Staging API to Central Portal, removing the manual curl step while keeping user-managed review as the default.
2026-07-28 17:52:04 +08:00
guoling da6ee7eee5 Fix Maven Central release artifacts
Add Android source JARs, support the existing repository credentials and file-based Gradle signing for KMP, and avoid shared signature outputs across target publications.
2026-07-28 17:16:50 +08:00
guoling e00ecf0408 Harden v2.4.1 KMP release packaging
Fix Android and iOS KMP API parity, empty-byte handling, handler behavior, and runtime version metadata. Harden standalone native interop and Maven Central publication, add smoke tests and publishing documentation, and validate the published package on a physical iPhone.
2026-07-28 16:44:46 +08:00
guoling 520a9a189c Add minimal KMP Android and iOS packaging for v2.4.1 2026-06-26 12:02:55 +08:00
guoling 5892e0ff3b fix expireDuration overflow bug #1665 2026-06-02 19:06:09 +08:00
guoling 68901025b1 add log 2026-06-02 16:58:56 +08:00
guoling f0b27bc4a1 drop .claude 2026-04-21 14:34:54 +08:00
Guo Ling 815b7d33e2 Merge pull request #1656 from zHElEARN/dev
Add static library option for MMKVAppExtension in SPM
2026-04-13 16:29:24 +08:00
zHElEARN d6876a7089 add the static library MMKVAppExtension-static 2026-04-10 01:16:38 +08:00
guoling de70a23783 Fix oversized key corrupting data due to uint16_t overflow in KeyValueHolder
Keys longer than 65531 bytes cause keySize and computedKVSize (both uint16_t)
to wrap around, silently corrupting the internal offset so that subsequent reads
return garbage. Reject keys exceeding the safe threshold (UINT16_MAX - 4) at
all write and parse entry points.
2026-04-08 16:08:59 +08:00
guoling 316ec96d04 Migrate mmkv Flutter plugin from CocoaPods to SPM #1654
Move source files from darwin/Classes/ to the SPM-compatible layout
under darwin/mmkv_ios/Sources/mmkv_ios/. Add Package.swift with MMKV
dependency from GitHub. Update podspec paths so CocoaPods still works
as a fallback.
2026-03-31 17:26:26 +08:00
guoling 7224f0aa8f Fix -Wmissing-braces 2026-03-27 16:23:03 +08:00
guoling e8168d323a tidy ohos project config 2026-03-25 15:58:11 +08:00
guoling 6a55c88536 enhance random iv 2026-03-25 12:46:48 +08:00
guoling 58920f50e1 update C++ demo code with MMKVHandler 2026-03-25 12:25:12 +08:00
guoling 050d8c874f add NameSpace to c bridge 2026-03-24 19:44:51 +08:00
guoling b90f15a3ef tidy kmp 2026-03-24 17:27:17 +08:00
guoling a380314d5a add desktop for kmp 2026-03-24 17:04:56 +08:00
guoling cd325ff25f fix typo 2026-03-24 15:41:54 +08:00
guoling 3cf58a3777 add win32 & linux support for kmp 2026-03-24 13:29:14 +08:00
guoling 3f2b3999f4 Add universal C interface (cbridge) for MMKV Core
Provide a language-agnostic C99 bridge using standard C types (const char*,
void*, int64_t, etc.) so MMKV Core can be consumed from C-only environments

- Core/cbridge/MMKVBridge.h: pure C header with mmkv_ prefixed API
- Core/cbridge/MMKVBridge.cpp: implementation wrapping MMKV C++ API
- POSIX/demo/demo_c.c: pure C demo exercising all API surface
- CMakeLists.txt updates for core library and demo_c target
2026-03-24 13:28:38 +08:00
guoling e197236714 Add Kotlin Multiplatform (KMP) wrapper for MMKV
KMP module at KMP/ exposes a Kotlin-idiomatic API in commonMain (com.tencent.mmkv.kmp),
with platform-specific implementations:
- androidMain: delegates to the existing com.tencent:mmkv Java library
- darwinMain: uses Kotlin/Native ObjC interop with the MMKV CocoaPod

Includes a Compose Multiplatform sample app (KMP/sample/) that demonstrates
MMKV initialization, encode/decode for all primitive types, named instances,
and key management on both Android and iOS.
2026-03-24 11:02:11 +08:00
guoling b6edcb64dd tidy 2026-03-24 11:02:11 +08:00
guoling a745e6bcaf fix cpp error 2026-03-19 15:41:19 +08:00
guoling 748f883b45 prepare for v2.4.0 2026-03-19 15:25:39 +08:00
guoling a2f49120ae update changelog for v2.4.0 2026-03-18 16:23:10 +08:00
guoling f3ddc30bdc add MMKVHandler.h to CocoaPods public headers and SPM fakeinclude 2026-03-18 16:23:05 +08:00
guoling 9348a93f26 refactor callback system into unified MMKVHandler across all platforms
Replace 4 separate static function pointers (LogHandler, ErrorHandler,
ContentChangeHandler, ContentLoadedHandler) with a single MMKVHandler
abstract class in Core C++. Update all 6 platform wrappers (iOS, Android,
OHOS, Python, Golang, Flutter) to use adapter classes bridging to the new
unified handler. Add onMMKVContentLoadSuccessfully callback to Android,
OHOS, Flutter, Python and Golang where it was previously missing.
2026-03-18 12:40:05 +08:00