Upgrading to SDK 35: What, Why, and How — A Friendly Guide for React Native Developers

SDK 35 Upgrade

Recently, Google made a big announcement: All Play Store apps must now target SDK 35—or risk being removed from production listings. This isn’t one of those “maybe later” things. If you don’t comply, your app stops getting updates, and new users won’t be able to install it.

I just went through this migration myself, upgrading a React Native app from 0.70.6 with Gradle 7.5.1 and AGP 7.2.2. Turns out, it’s not as simple as changing targetSdkVersion from 34 to 35. This post will share what I learned—so you can skip some headaches.

1. Why You Need to Upgrade Target SDK

  • Play Store policy: Without SDK 35, your app can’t be updated or installed.
  • Security: Newer SDKs fix vulnerabilities and enforce better privacy practices.
  • Performance & UX: Latest SDKs bring optimizations and keep your UI consistent with new devices.
  • Compliance: Google regularly bumps requirements to modernize the ecosystem.

2. Considerations & Challenges

  • Version interconnection: React Native, Gradle, AGP, and Java versions must be compatible. Upgrading one often forces upgrades in others.
  • Edge-to-edge enforcement: SDK 35 runs content behind system bars by default. Without adjustments, your UI can look “squished” under the status or navigation bars.
  • Dependency breakage: Third-party libraries (gesture handler, navigation, Firebase, etc.) may need updates—or code changes—to work after the upgrade.
  • Testing load: Visuals, navigation, and permissions might behave differently. You’ll need thorough QA.

3. Migration Guide – Step by Step

Step 1: Check Your Current Setup

Note down your React Native, Gradle, and AGP versions. In my case: RN 0.70.6, Gradle 7.5.1, AGP 7.2.2.

Step 2: Find Compatibility Requirements

Check what minimum RN version supports SDK 35. Then match compatible Gradle and AGP versions. Official docs will save you from guesswork:
React Native Docs
AGP Release Notes

Step 3: Use React Native Upgrade Helper

Visit Upgrade Helper, choose your current and target RN versions, and follow the diff it generates. Apply changes exactly—it’s your best upgrade roadmap.

Step 4: Update Dependencies

After upgrading RN core, fix other libraries:

  • react-native-gesture-handler
  • react-native-reanimated
  • @react-navigation/*
  • Any project-specific libs like Firebase, analytics, device APIs
Read changelogs to catch breaking changes early.

Step 5: Upgrade Gradle & AGP

Don’t manually edit build.gradle. Use Android Studio’s Upgrade Assistant to avoid version mismatch issues.
Recommended for SDK 35:

  • Android Studio: Koala (2024.1.2) or newer
  • Gradle: 8.0+
  • AGP: 8.6.1+
Also, download Android 15 (API 35) in SDK Manager.

Step 6: Change Target SDK

In android/app/build.gradle, set:
targetSdkVersion 35
compileSdkVersion 35
Then rebuild and fix errors as they appear.

Step 7: Handle Broken Builds

Errors are normal—resolve them one at a time. For Firebase users: check for compatibility updates before assuming the problem is in your code.

Step 8: Edge-to-Edge UI Adjustments

With SDK 35, content renders behind system bars by default. Use react-native-safe-area-context and test on gesture-nav devices to ensure headers and buttons aren’t hidden.

4. Bonus: Upcoming 16KB Alignment Rule

From August 2025, Play Store updates must have 16KB APK/Bundle alignment. Update your build tools or CI/CD scripts to meet this—don’t wait until submission day.

More info: Google Developer Blog

Wrapping Up

Upgrading to SDK 35 isn’t just about compliance—it’s about keeping your app secure, modern, and ready for the future. Do it step-by-step, follow the right resources, and you’ll get through without losing your weekend.

Have your own upgrade story? Share it in the comments—I’d love to hear how it went for you.

Comments

Reader's Choice

No better way to understand GIt flow than this...

Vercel vs Render | Choosing the Best Free Hosting Platform for Your Projects

Implementing OTP Auto-Retrieval in React Native Using react-native-otp-verify