Managing constant React Native upgrades driven by Google/Apple requirements (min SDK, Xcode/iOS SDK, 16KB page size) #975
Replies: 2 comments 4 replies
-
|
Hey @akhan-design - I can certainly sympathize with you, and maybe I can offer some advice. The fundamental thing we have to work with is: shipping apps to Apple's App Store and Google Play always means we have to play by their rules and live in their world. It's the cost of doing business, and if your business has made the tradeoff to go out and ship there, well, welcome to the treadmill. Things are always changing and the best we can do is keep up with it.
My advice here is to turn this unplanned upgrade cadence into a planned one. Stuff usually changes every quarter or half. Apple and Google do send out advance notice (check your notifications in both dashboards - you'll usually get ~6 months heads up on big changes like this). Block out time each quarter to do an upgrade if possible. Which brings me to my answers to your specific questions:
Yes absolutely. This is even easier if you're using a framework to ship React Native, like Expo. If you aren't right now, there are paths to move a bare React Native app to Expo. You may need to slow down (get into a framework) to speed up (get faster at upgrades). But if you're on Expo, most upgrades are a snap. Especially with CNG. As an example, I have a PR to upgrade the Ignite boilerplate from Expo 54 to 55 (beta), and it's just some Upgrades were a huge pain point in React Native's history. But continuous native generation has truly made that a thing of the past. I recommend you get on Expo and get on a quarterly update cycle. If you want to be conservative, stay one Expo SDK behind latest.
This depends. At the last product company I worked for, we didn't have a big enough team for that. But I was responsible for it as the tech lead, so I budgeted some small portion of my time to staying on top of things like console messages from the platforms, and escalating to my CEO if I needed resourcing. These days, I do React Native consulting. Generally, the larger the client, the more likely they are to have a team dedicated to this. But even then, most big orgs can get away with a temporary team that works on it on a cadence - not every single day. I'll reiterate my advice for Expo and rolling upgrades.
Yes to end-to-end coverage. You need it. Upgrade playbooks might be helpful, but with Expo it's really not that involved. You may want run the upgrade a few times to get a feel for it, and there will be some skills to learn around troubleshooting native dependencies. (My advice: go to GitHub issues for the package, then for Expo, then React Native - in that order). I've never seen dependency policies work very well in React Native. Sometimes newer dependencies have important fixes, and sometimes they break things. That's the nature of using a lot of distributed open source. It's one of the tradeoffs you have to evaluate when relying on the npm ecosystem. Expo helps again because Other strategies is having thorough code review and QA. Shift left what you can, and then train up your QA quite well. Use staged rollouts with Apple TestFlight, and Google Play internal tracks, and make sure you have good monitoring. Let new releases spend time in early release phases and then evaluate them before promoting.
Hard to say. I think we'd have to ask Apple and Google, and they wouldn't give us a straight answer anyway. Maybe the pace of things is moving along with the very rapidly changing tech landscape? Or maybe it's just unlucky. I know it's also coming at a time that meta is making big changes with compatibility layers for the old architecture, so I think we just ended up in a bad spot here. There are so many moving pieces, I think some businesses are just ending up on the wrong end of the stick. Sorry to hear you might be one of them. What I can say is - upgrading is worth it, and once you get over the one big gnarly upgrade, you can get on a a regular cadence and future ones will be much much easier. You won't even remember why the first one was so bad! (I am speaking from experience - I have done a few massive Expo/RN upgrades)
I personally know people who have attempted this. I think I saw one patch out there in the Infinite Red community slack, but I don't know anyone who has been successful with it. I think it's a significant enough change that you should just bite the bullet and make the upgrade. I hope this is helpful? Let me know if you ever want to talk shop or anything. I understand it's a frustrating position, but I promise it's fixable, and there's a world where you can turn this into a trivial concern for yourself and your organization. Might just take a bit of up front investment. |
Beta Was this translation helpful? Give feedback.
-
|
Hey! 👋 If you're facing this Android 16KB page size Play Store rejection with React Native, there's a detailed step-by-step guide that covers exactly how to fix this. Check it out here: https://community.7edge.com/t/react-native-android-16-kb-page-size-fix-avoid-play-store-rejection/340?u=rohanhalesh — it walks through making your native libraries 16KB page-size compliant to avoid Play Store rejection. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey folks, looking for advice from teams running React Native in production at scale.
Over the last year we’ve been forced into multiple RN upgrades mainly because of platform policy/requirement changes:
Android minimum requirements pushed us to upgrade to RN 0.74.
Now we’re seeing Apple/Xcode iOS SDK minimums with an April 2026 deadline (forcing another upgrade cycle).
And recently Google introduced the 16KB memory / page size requirement, which from what I’m hearing effectively means RN 0.77+ (or at least newer toolchain + fixes), which becomes another upgrade shortly after the last one.
As Head of IT, the hard part isn’t the upgrade itself, it’s the constant unplanned upgrade cadence and resource churn: we upgrade, stabilize, then 3–4 months later we’re forced into the next one. It’s getting difficult to schedule and staff while still delivering product work.
**Questions
Do you run a rolling RN upgrade program (e.g., quarterly) instead of ad-hoc upgrades?
Do you allocate a fixed “platform compliance” budget/squad?
Any strategies for minimizing regression risk (e2e coverage, upgrade playbooks, dependency policies)?
2. Why are these changes so aggressive lately?
3. For the 16KB memory/page size requirement: is there any viable mitigation on RN 0.74?
Specifically:
Is there a patch/workaround to stay on 0.74 temporarily (toolchain flags, NDK changes, build config, selective backports)?
We have native dependencies like Realm and others, so an immediate RN major bump isn’t trivial.
If anyone has been through this recently, I’d really appreciate concrete guidance: what worked, what didn’t, and how you plan upgrades so they’re not constant fire drills.
Thanks!
Ahmed Khan
Beta Was this translation helpful? Give feedback.
All reactions