ammarahm-ed / react-native-mmkv-storage

An ultra fast (0.0002s read/write), small & encrypted mobile key-value storage framework for React Native written in C++ using JSI
https://rnmmkv.now.sh
MIT License
1.56k stars 109 forks source link

Add supports for RN 0.71 #305

Closed focux closed 1 year ago

focux commented 1 year ago

Starting from version 0.71, react native is not shipping the android folder (read more).

This library depends on the android folder to build correctly, so this PR adds support for 0.71 and above and it's not backward compatible with older versions. ⚠️ This is a breaking change.

DISCLAIMER: These changes were extracted from react-native-mmkv library, all credits to them.

vercel[bot] commented 1 year ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated
rnmmkv ❌ Failed (Inspect) Jan 18, 2023 at 3:50PM (UTC)
robrechtme commented 1 year ago

Even with the changes of @JerakRus I'm still getting build errors:

Execution failed for task ':app:mergeDebugNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction
   > 2 files found with path 'lib/arm64-v8a/libjsi.so' from inputs:
      - /Users/robrechtme/code/my-app/node_modules/react-native-mmkv-storage/android/build/intermediates/library_jni/debug/jni/arm64-v8a/libjsi.so
      - /Users/robrechtme/.gradle/caches/transforms-3/9f48c0d87a8aa7490b90e5b452e6d297/transformed/jetified-react-android-0.71.0-debug/jni/arm64-v8a/libjsi.so
     If you are using jniLibs and CMake IMPORTED targets, see
     https://developer.android.com/r/tools/jniLibs-vs-imported-targets
focux commented 1 year ago

Fixed all the build issues and upgraded the example project to v0.71 as well to be sure that is working well on Android and iOS.

JamesC159 commented 1 year ago

Fixed all the build issues and upgraded the example project to v0.71 as well to be sure that is working well on Android and iOS.

confirmed the build works now. App did not crash either

ammarahm-ed commented 1 year ago

Although this PR is great, the problem is that it won't work for older versions of this library after upgrading. It still has to be backward compatible some how because most projects are on older versions of react-native & we are still supporting both.

So we need to find a way to still keep it backward compatible.