Build and Publish with EAS, and React Native Interviews

React Native with Expo: 10 Real Projects · Advanced Apps and Release · 5 min read · Updated

From code to the stores

  1. You finish and test the app and set its name, icon and app IDs.
  2. EAS Build compiles signed Android and iOS files in the cloud.
  3. You submit the builds to Google Play and the App Store for review.
  4. People install the app. Small JavaScript fixes can follow as over-the-air updates.

An app only matters when people can install it. Expo's build service, EAS (Expo Application Services), turns your project into real app files in the cloud, so you do not need Xcode or Android Studio on your computer. Store steps and fees change from time to time, so follow the current instructions from Apple, Google and Expo if they differ from this lesson.

Prepare the app

  • Open app.json and set a clear name, a unique slug and a version.
  • Set a unique app ID for each platform: ios.bundleIdentifier and android.package, such as com.yourname.shop. They cannot be changed after you publish.
  • Replace the default icon and splash screen in assets/.
  • Check every permission text, and remove libraries and code you do not use.
  • Test the whole app on at least one real phone.

Build with EAS

Terminal commands

npm install -g eas-cli
eas login
eas build:configure

# test builds you can share
eas build --platform android --profile preview     # APK for testers
eas build --platform ios --profile preview         # needs an Apple Developer account

# store builds
eas build --platform android --profile production  # AAB for Google Play
eas build --platform ios --profile production
eas submit --platform android
eas submit --platform ios

# send a small JavaScript-only fix to installed apps
npx expo install expo-updates
eas update --branch production --message "Fix typo"
  1. Create a free Expo account and run eas login.
  2. Run eas build:configure. It creates an eas.json with build profiles.
  3. Build a preview version first. For Android this is an APK you can send to testers. For iOS, internal builds need an Apple Developer account.
  4. Install it on a phone and check the whole app, because release builds can behave differently from Expo Go.
  5. Build the production version: an AAB for Google Play and an IPA for the App Store. EAS can manage signing credentials for you, or you can supply your own.

Publish to the stores

  1. Google Play: create a Play Console developer account (a one-time fee applies). Create the app, fill in the store listing, privacy policy, data safety and content rating forms, upload the AAB to an Internal testing track, then move to Production when ready. New personal accounts may have extra testing requirements, so check the current rules.
  2. App Store: join the Apple Developer Program (a yearly fee applies). Create the app in App Store Connect, add screenshots, a description and privacy details, upload the build, test with TestFlight, then submit for review.
  3. eas submit can upload builds to both stores from the command line.
  4. Reviews can take days. Fix any feedback and resubmit.

Over-the-air updates

With expo-updates you can send a JavaScript or asset fix directly to installed apps, without a full store review, using eas update. It cannot change native code, so changes to native libraries or permissions still need a new build. Stores also have rules about what updates may change, so keep them to bug fixes and small improvements.

After release

  • Read reviews and fix problems fast.
  • Add crash reporting (for example Sentry) so you see errors from real devices.
  • Raise the version, and the build number, for every release.
  • Keep Expo SDK and libraries reasonably current. Upgrade with npx expo install --fix and the SDK upgrade guide.

Interview preparation

Interviewers want to hear that you understand how React Native works and can explain choices. Practise answering these aloud with examples from your own projects.

  • What is React Native and how is it different from a hybrid web app?
  • What is Expo and when would you use a development build or bare React Native?
  • Explain props, state and the rules of hooks.
  • What does useEffect do, and what does the dependency array mean?
  • How does FlatList work, and how do you make a long list fast?
  • How does Flexbox in React Native differ from the web?
  • How do you store data on the device? AsyncStorage, SQLite and SecureStore: when do you use each?
  • What is the difference between server state and client state, and what tools do you use?
  • How do you handle permissions properly?
  • How do you test a React Native app?
  • How do you share navigation params, and why are they strings in Expo Router?
  • What is the new architecture of React Native (Fabric and TurboModules) and what problem does it solve?

Make a short portfolio: publish three or four of the ten apps to GitHub with a README, screenshots and the steps to run them. Add one that is on a store or in TestFlight if you can. Honest, working projects matter more than a long list of tools.

Your task

  1. Pick your best project and set its name, icon and app IDs in app.json.
  2. Run eas build:configure and make a preview build for Android.
  3. Install the build on a phone and write down anything that differs from Expo Go.
  4. Answer five of the interview questions aloud and note the ones you could not answer.

How to check it worked

  • The preview build installs and runs on a real phone.
  • You know the difference between an EAS update and a new build.
  • You can describe the steps from code to store in order.

Frequently asked questions

Do I need a Mac to publish to the App Store?

No. EAS Build compiles iOS apps in the cloud. You still need an Apple Developer account, and you can upload with eas submit.

What is the difference between eas build and eas update?

A build creates a new app file for the stores. An update sends changed JavaScript and assets to apps that are already installed, but cannot change native code.

How do I get my first React Native job?

Publish a few real projects on GitHub, make one polished app, practise the interview questions above, and apply for junior and internship roles while you keep building.