From abd3d0aef160e6986dc8350ebcb37327bafd1402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Wed, 24 Jun 2026 14:25:17 +0800 Subject: [PATCH 1/3] feat!: upgrade android sdk to 7.7.0 and ios sdk to 10.14.0 --- README.md | 2 +- android/build.gradle | 2 +- example/android/app/build.gradle | 2 +- example/android/build.gradle | 8 ++-- example/package.json | 2 +- react-native-navigation-sdk.podspec | 2 +- yarn.lock | 60 +++++++++++++---------------- 7 files changed, 35 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index d9444dad..bdfb4a5e 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ android { } dependencies { - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.4' + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.5' } ``` diff --git a/android/build.gradle b/android/build.gradle index 49426d7e..b06178a6 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -59,6 +59,6 @@ dependencies { implementation "androidx.car.app:app:1.4.0" implementation "androidx.car.app:app-projected:1.4.0" implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation "com.google.android.libraries.navigation:navigation:7.6.1" + implementation "com.google.android.libraries.navigation:navigation:7.7.0" api 'com.google.guava:guava:31.0.1-android' } diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 5ba13511..c94211fc 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -153,7 +153,7 @@ dependencies { implementation "androidx.car.app:app-projected:1.4.0" // Include the Google Navigation SDK. - implementation 'com.google.android.libraries.navigation:navigation:7.6.1' + implementation 'com.google.android.libraries.navigation:navigation:7.7.0' } secrets { diff --git a/example/android/build.gradle b/example/android/build.gradle index 961f70e7..b98f6183 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -33,9 +33,9 @@ buildscript { gradlePluginPortal() } dependencies { - classpath("com.android.tools.build:gradle") + classpath("com.android.tools.build:gradle:8.13.2") classpath("com.facebook.react:react-native-gradle-plugin") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21") classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") classpath('com.ncorti.ktfmt.gradle:plugin:0.21.0') } @@ -57,7 +57,7 @@ allprojects { exclude group: 'com.google.android.gms', module: 'play-services-maps' } } - + subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { @@ -69,7 +69,7 @@ allprojects { dependencies { // Desugar Java 8+ APIs (NIO flavor required for Navigation SDK 7.5.0+) - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.4' + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.5' } } } diff --git a/example/package.json b/example/package.json index 22ef94fa..6f66df2a 100644 --- a/example/package.json +++ b/example/package.json @@ -27,7 +27,7 @@ "@react-navigation/stack": "^6.4.1", "react": "19.2.0", "react-native": "0.83.1", - "react-native-gesture-handler": "2.29.1", + "react-native-gesture-handler": "3.0.2", "react-native-pager-view": "^6.9.1", "react-native-permissions": "^5.1.0", "react-native-safe-area-context": "^5.5.2", diff --git a/react-native-navigation-sdk.podspec b/react-native-navigation-sdk.podspec index 537626c8..7755390e 100644 --- a/react-native-navigation-sdk.podspec +++ b/react-native-navigation-sdk.podspec @@ -35,7 +35,7 @@ Pod::Spec.new do |s| s.public_header_files = "ios/**/*.h" s.dependency "React-Core" - s.dependency "GoogleNavigation", "10.13.0" + s.dependency "GoogleNavigation", "10.14.0" install_modules_dependencies(s) end diff --git a/yarn.lock b/yarn.lock index f292e945..34245d39 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1718,15 +1718,6 @@ __metadata: languageName: node linkType: hard -"@egjs/hammerjs@npm:^2.0.17": - version: 2.0.17 - resolution: "@egjs/hammerjs@npm:2.0.17" - dependencies: - "@types/hammerjs": ^2.0.36 - checksum: 8945137cec5837edd70af3f2e0ea621543eb0aa3b667e6269ec6485350f4d120c2434b37c7c30b1cf42a65275dd61c1f24626749c616696d3956ac0c008c4766 - languageName: node - linkType: hard - "@emnapi/core@npm:^1.4.3": version: 1.7.1 resolution: "@emnapi/core@npm:1.7.1" @@ -2968,13 +2959,6 @@ __metadata: languageName: node linkType: hard -"@types/hammerjs@npm:^2.0.36": - version: 2.0.46 - resolution: "@types/hammerjs@npm:2.0.46" - checksum: caba6ec788d19905c71092670b58514b3d1f5eee5382bf9205e8df688d51e7857b7994e2dd7aed57fac8977bdf0e456d67fbaf23440a4385b8ce25fe2af1ec39 - languageName: node - linkType: hard - "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.6 resolution: "@types/istanbul-lib-coverage@npm:2.0.6" @@ -3049,6 +3033,24 @@ __metadata: languageName: node linkType: hard +"@types/react-test-renderer@npm:^19.1.0": + version: 19.1.0 + resolution: "@types/react-test-renderer@npm:19.1.0" + dependencies: + "@types/react": "*" + checksum: 2ef3aec0f2fd638902cda606d70c8531d66f8e8944334427986b99dcac9755ee60b700c5c3a19ac354680f9c45669e98077b84f79cac60e950bdb7d38aebffde + languageName: node + linkType: hard + +"@types/react@npm:*": + version: 19.2.17 + resolution: "@types/react@npm:19.2.17" + dependencies: + csstype: ^3.2.2 + checksum: 9704dc2001b6bcc32efc6e3fe144e18c411d5ee8a5c8dfe572535e44bd300424c4e7bddc9314299eeec28efb547816368b5c9851c93a3082e8ad1265786f3d31 + languageName: node + linkType: hard + "@types/react@npm:19.2.0": version: 19.2.0 resolution: "@types/react@npm:19.2.0" @@ -4756,7 +4758,7 @@ __metadata: languageName: node linkType: hard -"csstype@npm:^3.0.2": +"csstype@npm:^3.0.2, csstype@npm:^3.2.2": version: 3.2.3 resolution: "csstype@npm:3.2.3" checksum: cb882521b3398958a1ce6ca98c011aec0bde1c77ecaf8a1dd4db3b112a189939beae3b1308243b2fe50fc27eb3edeb0f73a5a4d91d928765dc6d5ecc7bda92ee @@ -6573,15 +6575,6 @@ __metadata: languageName: node linkType: hard -"hoist-non-react-statics@npm:^3.3.0": - version: 3.3.2 - resolution: "hoist-non-react-statics@npm:3.3.2" - dependencies: - react-is: ^16.7.0 - checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 - languageName: node - linkType: hard - "hosted-git-info@npm:^4.0.1": version: 4.1.0 resolution: "hosted-git-info@npm:4.1.0" @@ -9765,7 +9758,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.13.0, react-is@npm:^16.13.1, react-is@npm:^16.7.0": +"react-is@npm:^16.13.0, react-is@npm:^16.13.1": version: 16.13.1 resolution: "react-is@npm:16.13.1" checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f @@ -9818,17 +9811,16 @@ __metadata: languageName: node linkType: hard -"react-native-gesture-handler@npm:2.29.1": - version: 2.29.1 - resolution: "react-native-gesture-handler@npm:2.29.1" +"react-native-gesture-handler@npm:3.0.2": + version: 3.0.2 + resolution: "react-native-gesture-handler@npm:3.0.2" dependencies: - "@egjs/hammerjs": ^2.0.17 - hoist-non-react-statics: ^3.3.0 + "@types/react-test-renderer": ^19.1.0 invariant: ^2.2.4 peerDependencies: react: "*" react-native: "*" - checksum: dddabdb12ce31d68ef71796e8fcaa57acd4608cca14412f36ce36fee14911fb629f325f0ced86bea1336a64673a434e34cde32a63be8d33f29d9a7bed292c5b2 + checksum: 28505ddc9f30ad81952af033f49c66969332ab848421c27eb3161f3245a89d58afbb56acd21c9fcf85b561c09d63b3950c3401a43be19f970bcf990b90b17ad2 languageName: node linkType: hard @@ -9874,7 +9866,7 @@ __metadata: react: 19.2.0 react-native: 0.83.1 react-native-builder-bob: ^0.40.13 - react-native-gesture-handler: 2.29.1 + react-native-gesture-handler: 3.0.2 react-native-monorepo-config: ^0.1.9 react-native-pager-view: ^6.9.1 react-native-permissions: ^5.1.0 From da03f72da15eeaa00097d1a9fa89d9120b92b543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Wed, 24 Jun 2026 16:45:59 +0800 Subject: [PATCH 2/3] docs: updated migrating docs for 0.17.0 release --- MIGRATING.md | 92 ++++++++++++++++++++++++++++++++++++ example/android/build.gradle | 2 +- 2 files changed, 93 insertions(+), 1 deletion(-) diff --git a/MIGRATING.md b/MIGRATING.md index 88f63838..207e5df6 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -4,10 +4,102 @@ This document covers breaking changes and migration steps between major versions ## Table of Contents +- [Migrating from 0.16.x to 0.17.x](#migrating-from-016x-to-017x) - [Migrating from 0.13.x to 0.14.x](#migrating-from-013x-to-014x) --- +## Migrating from 0.16.x to 0.17.x + +Version 0.17.0 upgrades the underlying Google Navigation SDKs and raises the minimum Android build toolchain requirements. + +### Summary of Breaking Changes + +| Category | Change | +| ----------------- | --------------------------------------------------------------------------------------- | +| Native SDKs | Android Navigation SDK upgraded to `7.7.0`, iOS Navigation SDK upgraded to `10.14.0` | +| Kotlin | Minimum required Kotlin version is now `2.3.0` | +| Android Gradle | Android Gradle Plugin (AGP) must be `8.13.2` or newer | +| Kotlin Gradle | Kotlin Gradle Plugin must be `2.3.21` or newer | + +### What changed + +This release updates the native Navigation SDK dependencies to: + +- **Android:** Google Maps Navigation SDK `7.7.0` +- **iOS:** Google Maps Navigation SDK `10.14.0` + +There are no JavaScript API changes in this release, but **Android projects must update their Gradle/Kotlin toolchain** to build successfully. + +### Step 1: Update your Android build toolchain + +React Native's default Android Gradle Plugin and Kotlin Gradle Plugin versions are not new enough for this release, so you must override them in your Android project. + +> [!NOTE] +> This is a temporary compatibility requirement. Future React Native releases are expected to update their default AGP and Kotlin plugin versions. + +#### Minimum required versions + +- **AGP:** `8.13.2` or newer +- **Kotlin Gradle Plugin:** `2.3.21` or newer +- **Kotlin language version:** `2.3.0` or newer + +#### Example root `android/build.gradle` + +If your app uses a root `build.gradle` with a `buildscript` block, update it like this: + +```diff +buildscript { + ext { +- kotlinVersion = "" ++ kotlinVersion = "2.3.0" + } + dependencies { +- classpath("com.android.tools.build:gradle") +- classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") ++ classpath("com.android.tools.build:gradle:8.13.2") ++ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21") + } +} +``` + +### Step 2: Sync and rebuild Android + +After updating Gradle and Kotlin versions: + +```bash +cd android +./gradlew clean +``` + +Then rebuild your app. + +If you run into dependency or build cache issues, reinstall dependencies and rebuild from scratch. + +### Step 3: Reinstall iOS pods + +The iOS SDK is upgraded to `10.14.0`, so after upgrading the package you should reinstall pods: + +```bash +cd ios && pod install +``` + +### Release notes + +For native SDK changes introduced upstream, review the official release notes: + +- [Android Navigation SDK 7.7.0 release notes](https://developers.google.com/maps/documentation/navigation/android-sdk/release-notes) +- [iOS Navigation SDK 10.14.0 release notes](https://developers.google.com/maps/documentation/navigation/ios-sdk/release-notes) + +### Troubleshooting + +If Android builds start failing after upgrading, first verify: + +1. Your project is using **AGP 8.13.2+** +2. Your project is using **Kotlin Gradle Plugin 2.3.21+** +3. Your Kotlin version is at least **2.3.0** +4. You have refreshed Gradle dependencies and rebuilt the app + ## Migrating from 0.13.x to 0.14.x Version 0.14.0 introduces React Native's **New Architecture** (Fabric & TurboModules) as a requirement, dropping support for the legacy architecture. This release also includes breaking API changes and new features. diff --git a/example/android/build.gradle b/example/android/build.gradle index b98f6183..93f2f190 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -25,7 +25,7 @@ buildscript { compileSdkVersion = 36 targetSdkVersion = 36 ndkVersion = "27.1.12297006" - kotlinVersion = "2.0.21" + kotlinVersion = "2.3.0" } repositories { google() From aa437e7397a2235e4d9e99dd632621a1584a884b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Wed, 24 Jun 2026 17:19:44 +0800 Subject: [PATCH 3/3] docs: changes to migration docs for 0.17.0 release --- MIGRATING.md | 8 +++++--- example/android/build.gradle | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/MIGRATING.md b/MIGRATING.md index 207e5df6..c4b4e35c 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -33,10 +33,12 @@ There are no JavaScript API changes in this release, but **Android projects must ### Step 1: Update your Android build toolchain -React Native's default Android Gradle Plugin and Kotlin Gradle Plugin versions are not new enough for this release, so you must override them in your Android project. +React Native's default Android Gradle Plugin and Kotlin Gradle Plugin versions are not yet new enough for this release, so you must override them in your Android project. > [!NOTE] -> This is a temporary compatibility requirement. Future React Native releases are expected to update their default AGP and Kotlin plugin versions. +> This is currently required because the latest React Native release (`0.86.0`) still does not provide new enough default AGP and Kotlin plugin versions. This should be temporary, as future React Native releases are expected to update these defaults. +> +> Some Android dependencies in your app may not yet be compatible with these manual toolchain upgrades. If upgrading AGP/Kotlin causes build or compatibility issues in your project, we recommend staying on `0.16.x` of this package until those dependencies are updated. #### Minimum required versions @@ -52,7 +54,7 @@ If your app uses a root `build.gradle` with a `buildscript` block, update it lik buildscript { ext { - kotlinVersion = "" -+ kotlinVersion = "2.3.0" ++ kotlinVersion = "2.3.21" } dependencies { - classpath("com.android.tools.build:gradle") diff --git a/example/android/build.gradle b/example/android/build.gradle index 93f2f190..55cbb77d 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -25,7 +25,7 @@ buildscript { compileSdkVersion = 36 targetSdkVersion = 36 ndkVersion = "27.1.12297006" - kotlinVersion = "2.3.0" + kotlinVersion = "2.3.21" } repositories { google()