Expo publishing

Publish an Expo app to the App Store and Google Play

Shiptavio builds, signs, and submits your Expo project from source through our Apple Developer and Google Play organization accounts. You do not need a Mac, Xcode, EAS Build, or your own developer accounts. The service is for free apps without in-app purchases or subscriptions.

Updated 26 October 2026. Free apps only. No in-app purchases or subscriptions.

Framework

Expo, with or without native folders

Source we build

Your project, app config, lockfile, and native setup

Store accounts

Company organization accounts, with transfer available later

Best fit

A free Expo 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.

See what is included

What Shiptavio handles

  • Review the Expo project, config plugins, and build command.
  • Run npx expo prebuild when the project relies on generated native folders.
  • Build the native iOS and Android release on our Mac.
  • Sign with our distribution certificates and submit to both stores.
  • Handle store feedback and transfer the app later if you ask.

What we do not do

  • Rewrite your React Native screens.
  • Manage your EAS Build or EAS Update account.
  • 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 Expo project source, including app.json or app.config.ts and the lockfile.
  • The ios/ and android/ folders when your project commits them.
  • Config plugins and any native files that affect the build.
  • The exact prebuild and build command, including flavor or environment details.
  • App icon, screenshots, store text, privacy policy, and a demo account if needed.

How an Expo release works

The same review and credit rules apply to every framework. The build command and the native files are what change.

  1. 1

    Register the app

    Create an account, choose Expo, and select the platforms you target. You can publish both stores from one app record.

  2. 2

    Send the project

    Use a GitHub repository or a source zip. Include the Expo config and lockfile. If your project uses continuous native generation, the config plugins and prebuild command are part of the source.

    Typical Expo project
    my-app/
      app.json
      package.json
      pnpm-lock.yaml
      app/
      ios/        (if committed)
      android/    (if committed)
      eas.json    (if you use EAS locally)
  3. 3

    We prebuild and build

    We run npx expo prebuild when needed, install pods, and build the native release with Xcode and Gradle on our Mac. EAS Build is not required.

  4. 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 release status in your dashboard.

Technical notes

These are the details that decide whether the source builds and whether the store accepts the upload.

EAS Build is optional

Shiptavio does not need EAS Build. We run the native build from your source on our Mac. You can keep EAS for your own development builds.

EAS Update is separate

If your app uses EAS Update, tell us before submission. OTA updates need your Expo account and credentials, and Shiptavio does not manage them. A store build still needs a native build.

Public environment variables

EXPO_PUBLIC_* values are embedded in the app and are not secret. Put production URLs in the submission form or app.config.ts. Never put private API keys in the app bundle.

Version and build number

Set version, ios.buildNumber, and android.versionCode yourself. If EAS normally increments them, confirm the values before a Shiptavio build.

Config plugins change native code

Plugins that add permissions, native modules, or build settings must be declared in app.json or app.config.ts. Run npx expo prebuild --clean locally if you can, and send the error if it fails.

Testing is your responsibility

Test the app on real devices. Shiptavio builds and submits, but it does not replace QA or confirm that every screen works.

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.
  • app.json or app.config.ts is complete, including config plugins.
  • The version and build numbers are set.
  • The project builds after a clean prebuild, or the failing command is documented.
  • No .env files, keystores, or private keys are in the source.

Expo publishing tutorial

Configure app.json, generate native projects, set public environment values, and prepare the source.

Open the tutorial

Questions

Do I need EAS to publish?
No. EAS is Expo's build, submit, and update service. Shiptavio builds from your source and submits through our organization accounts, so an EAS subscription is not required for our process.
Can I use EAS Update with Shiptavio?
You can keep EAS Update for your own OTA releases, but Shiptavio does not manage it. OTA updates require your Expo account and signing setup. Tell us before submission so the store build and runtime version are aligned.
Do you support Expo Go?
Expo Go is a development client. Store builds need a native binary, so we build the native project from your source.
Do I need a Mac?
No. We build on our Mac. You still need a way to test the app on a real iPhone and Android device before release.
What if my project is bare React Native?
Use the React Native publishing page. A bare React Native CLI project has its own native folders and build commands. Expo projects can use the Expo flow even when they commit ios/ and android/.
Can I send a finished IPA or AAB?
No. We build from source and sign with our certificates, so a binary produced with your keys cannot be reused.

Related guides

Ready to send your Expo project?

Create an account, register the app, and add the source. A person reviews the project before the build starts.