diff --git a/.github/workflows/android-build-custom-dev-app.yml b/.github/workflows/android-build-custom-dev-app.yml index 5cb144fb..2a4cad8d 100644 --- a/.github/workflows/android-build-custom-dev-app.yml +++ b/.github/workflows/android-build-custom-dev-app.yml @@ -18,7 +18,7 @@ jobs: uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: 17 + java-version: 21 - name: actions/setup-node uses: actions/setup-node@v3 @@ -29,8 +29,8 @@ jobs: - name: npm install run: npm ci - - name: Add NDK 26.1.10909125 - run: echo "y" | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install "ndk;26.1.10909125" + - name: Add NDK 27.3.13750724 + run: echo "y" | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install "ndk;27.3.13750724" - name: Build with Gradle run: ./gradlew assembleDevDebug diff --git a/.github/workflows/ios-build-custom-dev-app.yml b/.github/workflows/ios-build-custom-dev-app.yml index 70327299..0b9ecdd8 100644 --- a/.github/workflows/ios-build-custom-dev-app.yml +++ b/.github/workflows/ios-build-custom-dev-app.yml @@ -13,9 +13,9 @@ jobs: steps: - uses: actions/checkout@v3 - - name: switch XCode to 15.4 + - name: switch XCode to 16.4 run: | - sudo xcode-select -s /Applications/Xcode_15.4.app + sudo xcode-select -s /Applications/Xcode_16.4.app - name: update bundle identifier in Dev config shell: bash diff --git a/android/build.gradle b/android/build.gradle index c27457b8..ed2f8794 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -12,7 +12,7 @@ buildscript { androidXCore = "1.6.0" androidXBrowser = "1.3.0" - ndkVersion = "26.1.10909125" + ndkVersion = "27.3.13750724" } repositories { google() @@ -66,6 +66,31 @@ allprojects { } maven { url "https://packages.rnd.mendix.com/jcenter" } } + + // Build all modules with Android 16KB pages enabled + plugins.withId('com.android.application') { + android { + defaultConfig { + externalNativeBuild { + cmake { + arguments "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" + } + } + } + } + } + + plugins.withId('com.android.library') { + android { + defaultConfig { + externalNativeBuild { + cmake { + arguments "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" + } + } + } + } + } } apply plugin: "com.facebook.react.rootproject" diff --git a/package-lock.json b/package-lock.json index c77f7044..a048bc03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "dependencies": { "@gorhom/bottom-sheet": "^5.1.1", - "@mendix/native": "9.0.7", + "@mendix/native": "9.1.0", "@op-engineering/op-sqlite": "9.2.7", "@react-native-async-storage/async-storage": "2.0.0", "@react-native-camera-roll/camera-roll": "7.4.0", @@ -1783,9 +1783,9 @@ } }, "node_modules/@mendix/native": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@mendix/native/-/native-9.0.7.tgz", - "integrity": "sha512-Hgd7LSYmtAhpCvCLkY+JuXHts4eR94EHbG5S6W6hIg35y+iQegs2MgCqMpgBlNYTgtfuHxaaNnCaGOeAq5P4ew==" + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@mendix/native/-/native-9.1.0.tgz", + "integrity": "sha512-fwUR2LWRxUPko9XOxwwz5B5HeEMdf4GZlG0H1LbIa0GmOv90rQsnW5pc1yFgTWerUEOwsvZlSWWmsWDlgfTbUQ==" }, "node_modules/@mendix/native-mobile-toolkit": { "version": "1.0.127", diff --git a/package.json b/package.json index 6357ac2e..a95214ad 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "dependencies": { "@gorhom/bottom-sheet": "^5.1.1", - "@mendix/native": "9.0.7", + "@mendix/native": "9.1.0", "@op-engineering/op-sqlite": "9.2.7", "@react-native-async-storage/async-storage": "2.0.0", "@react-native-camera-roll/camera-roll": "7.4.0", diff --git a/patches/@op-engineering+op-sqlite+9.2.7.patch b/patches/@op-engineering+op-sqlite+9.2.7.patch index 714c0ff7..1131d24e 100644 --- a/patches/@op-engineering+op-sqlite+9.2.7.patch +++ b/patches/@op-engineering+op-sqlite+9.2.7.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/@op-engineering/op-sqlite/android/build.gradle b/node_modules/@op-engineering/op-sqlite/android/build.gradle -index 4186aa3..242dd95 100644 +index 427aa8e..8cc5fab 100644 --- a/node_modules/@op-engineering/op-sqlite/android/build.gradle +++ b/node_modules/@op-engineering/op-sqlite/android/build.gradle @@ -1,5 +1,4 @@ @@ -39,7 +39,24 @@ index 4186aa3..242dd95 100644 if(useSQLCipher) { println "[OP-SQLITE] using SQLCipher 🔒" } else if(useLibsql) { -@@ -171,8 +156,8 @@ android { +@@ -167,13 +152,25 @@ android { + "**/libfbjni.so", + "**/libreactnative.so", + ] ++ ++ if (!useCRSQLite) { ++ excludes += [ ++ "**/libcrsqlite.so" ++ ] ++ } ++ ++ if (!useSqliteVec) { ++ excludes += [ ++ "**/libsqlite_vec.so" ++ ] ++ } + } + } compileOptions { @@ -50,6 +67,15 @@ index 4186aa3..242dd95 100644 } externalNativeBuild { +@@ -203,7 +200,7 @@ dependencies { + implementation 'com.facebook.react:react-native' + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + if (useSQLCipher) { +- implementation('com.android.ndk.thirdparty:openssl:1.1.1q-beta-1') ++ implementation('io.github.ronickg:openssl:3.3.2-1') + } + } + diff --git a/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp b/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp index ed599ea..4813667 100644 --- a/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp @@ -83,7 +109,7 @@ index ed599ea..4813667 100644 } \ No newline at end of file diff --git a/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt b/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt -index 7445a4c..a9dcf14 100644 +index 7445a4c..7e6db78 100644 --- a/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt +++ b/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt @@ -13,6 +13,8 @@ class OPSQLiteBridge { @@ -146,10 +172,10 @@ index 6179cfc..7663a49 100644 fun moveAssetsDatabase(args: ReadableMap, promise: Promise) { val filename = args.getString("filename")!! diff --git a/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.cpp b/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.cpp -index c3663dd..a81af62 100644 +index c6bda2a..aefaefb 100644 --- a/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.cpp +++ b/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.cpp -@@ -946,6 +946,16 @@ void DBHostObject::set(jsi::Runtime &rt, const jsi::PropNameID &name, +@@ -963,6 +963,16 @@ void DBHostObject::set(jsi::Runtime &rt, const jsi::PropNameID &name, void DBHostObject::invalidate() { invalidated = true; } @@ -167,10 +193,10 @@ index c3663dd..a81af62 100644 } // namespace opsqlite diff --git a/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.h b/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.h -index dcb694c..8ec3f4b 100644 +index d11c212..175b546 100644 --- a/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.h +++ b/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.h -@@ -52,6 +52,7 @@ public: +@@ -58,6 +58,7 @@ public: void set(jsi::Runtime &rt, const jsi::PropNameID &name, const jsi::Value &value); void invalidate(); @@ -179,7 +205,7 @@ index dcb694c..8ec3f4b 100644 private: diff --git a/node_modules/@op-engineering/op-sqlite/cpp/bindings.cpp b/node_modules/@op-engineering/op-sqlite/cpp/bindings.cpp -index b471d3d..e06ec0c 100644 +index a4cd737..e88831d 100644 --- a/node_modules/@op-engineering/op-sqlite/cpp/bindings.cpp +++ b/node_modules/@op-engineering/op-sqlite/cpp/bindings.cpp @@ -47,6 +47,13 @@ void clearState() {