React Native publishing
Publish a React Native app to the App Store and Google Play
Shiptavio builds, signs, and submits bare React Native projects through our Apple Developer and Google Play organization accounts. Send the project with its ios/ and android/ folders. You do not need a Mac or your own store accounts.
Updated 26 October 2026. Free apps only. No in-app purchases or subscriptions.
Framework
React Native CLI, not Expo
Source we build
JavaScript or TypeScript plus ios/ and android/
Store accounts
Company organization accounts, with transfer available later
Best fit
A free React Native app that is ready for store review
Company organization accounts, not individual accounts
App Store publishing runs on the Apple Developer organization account of our Malaysia-based organization. Google Play publishing runs on our Google Play organization account. We do not use an individual or personal developer account for a customer app.
Promo price
RM199 per app for 12 months.
5 release credits included: your first publish plus up to 4 updates. One credit covers one publish or update, whether it targets iOS, Android, or both.
When they run out, buy the same RM199 package for 5 more. We do not sell single base credits.
macOS, tvOS and visionOS publishing is available separately at RM49 per platform credit. One credit covers one Apple platform release target.
After the launch period: RM399 per app for 12 months. Ends 31 December 2026.
What Shiptavio handles
- Review the native project and the exact build command.
- Install npm dependencies and CocoaPods on our Mac.
- Build the iOS archive and Android App Bundle.
- Sign with our certificates and submit to both stores.
- Handle store feedback and transfer the app later if you ask.
What we do not do
- Rewrite React Native screens or native modules.
- Manage CodePush or another OTA service.
- Sell in-app purchases or digital subscriptions.
- Guarantee store approval or a fixed review date.
- Test the app for you or replace device QA.
What to send
Send source, not a finished binary. The source must be complete enough for us to reproduce your release build.
- The React Native project, including ios/ and android/.
- package.json and the lockfile.
- ios/Podfile.lock and the Android Gradle files.
- The exact build command and any native configuration notes.
- App icon, screenshots, store text, privacy policy, and a demo account if needed.
How a React Native release works
The same review and credit rules apply to every framework. The build command and the native files are what change.
- 1
Register the app
Create an account, choose React Native CLI, and select the platforms you target. Expo projects should use the Expo option instead.
- 2
Send the native source
Use a GitHub repository or a source zip. Include the native folders, Podfile.lock, and Gradle files. Do not send node_modules, ios/Pods, or build output.
Typical React Native CLI projectMyApp/ package.json yarn.lock ios/ Podfile Podfile.lock android/ build.gradle gradle.properties src/ - 3
We install and build
We run your package manager, run pod install in ios/, then build the Xcode archive and the Android App Bundle on our Mac using our organization accounts.
- 4
We submit and track
We upload to App Store Connect and Google Play with our organization accounts, work through store feedback, and update the status in your dashboard.
Technical notes
These are the details that decide whether the source builds and whether the store accepts the upload.
This is not the Expo flow
A React Native CLI project has its own native folders and build setup. If you use Expo, use the Expo publishing page so prebuild and config plugins are handled correctly.
Include Podfile.lock
The lockfile makes the iOS dependency set reproducible. Do not send ios/Pods/ because it is generated and large.
Keep version numbers in sync
Android uses versionName and versionCode. iOS uses CFBundleShortVersionString and CFBundleVersion. Increment both for each store upload.
Hermes and the New Architecture
Tell us if the project enables Hermes or the New Architecture. The release build must use the same settings as the build you tested.
Native environment values
Values read at build time can be embedded in the app. Use production URLs and do not put private keys in the bundle. Add non-secret values in the submission form.
Testing is your responsibility
Test the app on a real iPhone and Android phone. Shiptavio builds and submits, but it does not replace QA.
Before you submit
- The app is free and has no in-app purchases or subscriptions.
- The iOS bundle identifier and Android package name are final.
- The ios/ and android/ folders are present.
- The version name and build numbers are incremented.
- The project builds after a clean install, or the failing command is documented.
- No .env files, keystores, or private keys are in the source.
React Native publishing tutorial
Set the app identity, install native dependencies, run release builds, and package the project.
Open the tutorialQuestions
Do I need Xcode?
Do you support Expo?
Can I use CodePush or another OTA service?
Can you build with a specific NDK or Gradle version?
Can I send an APK?
Does Shiptavio guarantee approval?
Related guides
Publish an Expo app
For Expo projects that use prebuild or a custom native setup.
Publish a Flutter app
For apps built in Dart with Flutter.
Submit with the CLI
Package and send a release from your terminal or CI.
How to submit
The full dashboard flow, from account creation to store review.
Compare publishing options
Shiptavio, Expo EAS, Codemagic, and Fastlane side by side.
Prohibited apps
Check the categories we cannot publish before you start.
Ready to send your React Native project?
Create an account, register the app, and add the source. A person reviews the project before the build starts.