Rork

Fixing a Rork app: what breaks between the preview and the App Store

Last verified by Designated Dev

Short answer

Rork apps usually break in the gap between Rork's preview and a real build: environment variables and secrets that don't carry over, keys shipped inside the app, paywalls that only work with RevenueCat's test store, Sign in with Apple details that fail review, and features the preview can't run. Rork's older projects are React Native and Expo, which is our core work; since Rork's switch, new Rork apps are native Swift, Kotlin or web.

At a glance

What you seeWhy it happensThe fix
TestFlight build crashes the moment it opensVariables and secrets set in Rork aren't in the build, or a required permission key is missingSet the variables where the build runs, add the Info.plist keys, rebuild
An AI or API key is readable in the appA secret was given an EXPO_PUBLIC_ name, which ships inside the appMove the key into a server function and rotate it
Purchases work in Rork, fail in TestFlight or reviewRevenueCat's Test Store isn't real Apple in-app purchase; agreements or the public API key aren't setActivate the Paid Apps Agreement, set the App Store key, test real IAP in TestFlight
Rejected over Sign in with AppleThe app asks again for name or email, or rejects private relay addressesAccept Apple's relay email and don't re-ask for details Apple already gave

First: which kind of Rork app is it?

Rork changed what it generates. Its docs now say: “You can no longer create Expo (React Native) projects in Rork. New apps are native iPhone (Swift), native Android (Kotlin), or web.” Existing Expo projects keep working and can still be built, published and synced to GitHub.

If your project was created as an Expo app, everything below applies directly, and it’s the work we do. Rork’s newer native apps share many of the same problems, since secrets, paywalls, sign-in and review rules don’t depend on the framework, but the fixes are written in Swift or Kotlin instead.

What breaks, from Rork’s own documentation

Secrets and keys

Rork’s docs warn that variables prefixed EXPO_PUBLIC_ are “shipped inside the app, readable by anyone who installs it,” and say: “Never give a secret key an EXPO_PUBLIC_ name.” An AI or payment key with that prefix is readable by anyone with the app. Move it into a server function and rotate it, because the old key has already shipped.

Two more details catch people when they leave the preview. Secrets “are not committed” to GitHub, so they must be set again wherever the code runs. And values are baked in at build time, so changing one “needs a new build.” Our guide to crashes on launch in TestFlight covers the Expo version of this in detail.

Crashes and build failures

Rork’s submission-errors page lists problems that stop an upload or a build: a missing Info.plist permission key, a capability not enabled on the Apple account, bundle ID or version mismatches. It also lists two TestFlight symptoms: the app “will instantly crash once you open it” and “the AI functionality will not work.” Both usually trace back to configuration the preview supplied and the real build didn’t have.

Features the preview can’t run

The cloud simulator Rork uses for previews has no camera and can’t receive Apple push notifications. Anything built on those needs testing on a real device before it goes to review.

Paywalls

Rork’s RevenueCat guide notes that Test Store purchases are not real in-app purchases: a TestFlight build is required for real Apple IAP. The common failures it lists are agreements and banking not being active in App Store Connect, and the App Store public API key not being set properly. Our Restore Purchases guide covers the restore button reviewers test and the store settings behind an empty paywall.

Sign in with Apple

Rork’s OAuth docs list review traps: asking for the name or email again after Apple sign-in, rejecting @privaterelay.appleid.com addresses, and making the Apple button less prominent than Google’s. They also warn that switching auth systems later forces users to sign up again, so choose before launch.

Rejections Rork warns about

Its review checklist names vague permission strings, subscription apps missing a privacy policy, terms and EULA in the listing and on the paywall, a hard paywall not disclosed in the description, and stretched iPhone screenshots used for iPad. If the app sends data to an AI model, add guideline 5.1.2(i) to that list, and if it has sign-up, account deletion under 5.1.1(v).

About the 2026 “vibe coding” App Store crackdown

In March 2026 Apple blocked updates to several builder apps under guideline 2.5.2, which says apps may not “download, install, or execute code which introduces or changes features or functionality of the app, including other apps.” The coverage Michael Tsai collected names builder apps such as Replit, Vibecode and Anything. It was about apps that run generated code inside themselves, not the apps people build with them. We found no reports of Rork-built apps being rejected under 2.5.2.

Taking the code out of Rork

On paid plans Rork syncs the project to GitHub in both directions, so you can open it in Cursor, Claude Code or your own editor and import changes back. Expect to set secrets again locally. Features built on Rork’s own services, such as Rork Auth or its AI cloud, keep depending on Rork unless you replace them.

How we handle it

We start from the GitHub export, build the app the way the stores will, and test on real devices. Then we fix the gap between the preview and production: keys moved to a server, variables set where the build runs, purchases and restore tested with sandbox accounts, sign-in checked against the review rules. We write down what changed so the next prompt in Rork doesn’t quietly undo it.

Questions

Does Rork use Expo and React Native?

Not for new projects. Rork's docs say new apps are native iPhone (Swift), native Android (Kotlin) or web, and that existing Expo projects keep working and can still be built, published and synced to GitHub.

Can I export my Rork code and keep working in Cursor or Claude Code?

Yes, on Rork's paid plans. Rork syncs the project to GitHub in both directions, so you can edit locally and import changes back. Secrets are not committed, so set them again wherever you run the code.

Were Rork apps banned from the App Store in 2026?

No evidence of that. Apple's March 2026 enforcement of guideline 2.5.2 targeted builder apps that run generated code inside themselves, such as Replit and Vibecode, not the apps people build with those tools.

Can I publish a Rork app to the App Store myself?

Yes. Rork has a built-in Submit to App Store flow that builds on Rork's machines, and you need a paid Apple Developer account. You still complete the listing in App Store Connect.

Do you fix Rork's native Swift apps?

Our work is React Native and Expo, so Rork's Expo projects are our core. If yours is one of the newer native Swift or Kotlin apps, tell us what's broken and we'll say on the call whether we're the right fit.

Sources

  1. Rork docs: Expo projects
  2. Rork docs: Secrets and environment variables
  3. Rork docs: Submission errors
  4. Rork docs: What's next after the app's finished (review checklist)
  5. Rork docs: RevenueCat
  6. Rork docs: Setting up OAuth
  7. Rork docs: Code export
  8. Rork docs: Publishing FAQ
  9. Michael Tsai: Updates to vibe coding apps rejected from the App Store
  10. Apple: App Review Guidelines, 2.5.2

Stuck on this in your own app?

We fix it, test it on real devices, and resubmit.

30 minutes with the engineer who'd do the work. Bring the repo link or the rejection email. Fixed price once scoped, in writing.