AppForShareUpload a build

Keep building on EAS, share builds and ship releases with AppForShare

Expo Application Services (EAS) builds Expo and React Native apps on Expo's own Linux and macOS machines, uploads store builds to App Store Connect and Google Play (EAS Submit), ships over the air JavaScript updates (EAS Update) and runs CI pipelines (Expo Workflows). Expo's own pages now also call these Expo Build, Expo Submit and Expo Update. As listed on November 4, 2026, the Free plan includes 15 Android and 15 iOS builds a month, Starter is $19 a month with $45 of build credit, and Production is $199 a month with $225 of build credit, every plan with unlimited members.

AppForShare does not build your app and does not host over the air updates. It is the part after the build: install links testers open without an account, iPhone device onboarding, feedback, a store readiness check on every build and the App Store and Google Play steps. Keep EAS Build and send its internal builds to AppForShare with Connect Expo (an EAS build webhook, no CI needed), an Expo Workflows job, GitHub Actions or one CLI command.

Pick AppForShare if

  • You want one link per channel that always opens the newest build, with rollback, instead of a new URL for every build.
  • You want passwords, stop dates, install limits and extra links per client on the install link, not only "anyone with the URL" or an Expo login.
  • Your testers and clients should install with no account, in their own language (13 install page languages), with install help when an iPhone build will not install.
  • You want iPhone testers to send their device through an onboarding link, registered on Apple with your App Store Connect API key, never an Apple ID sign in.
  • You want tester feedback with screenshots from the install page, from inside the test build through a link with no SDK, and TestFlight feedback in the same inbox (Team).
  • You want each build checked against App Store and Google Play rules, plus Expo checks: a development client sent to testers, a test build reading the production update channel, a changed runtime version.
  • You want the store steps after the upload: listing editor with screenshots and AI translation (store.config.json import and export), App Store review, Google Play rollouts with crash and ANR rates on the release page (Team), reviews inbox.
  • You ship Flutter or native apps too, and want every project in one place.

Pick Expo EAS if

  • You need cloud builds, including iOS builds without a Mac. AppForShare does not build; at most it sets up builds on your own GitHub Actions.
  • You ship over the air updates with channels, branches and rollouts. AppForShare shares whole builds only.
  • You want one vendor for build, submit and update, with Workflows jobs for Maestro tests, TestFlight groups and Beta App Review.
  • 15 Android and 15 iOS free builds a month and their internal links are all your testers need.
  • You want unlimited members on a free plan. Our Free plan has 1 seat; Team has 5.
  • You need SSO (Expo Production) or crash and performance monitoring (EAS Observe).

Side by side

What it is
AppForShare

Test build sharing and store release steps for builds made anywhere, EAS included. Not a build service.

Expo EAS

Cloud builds (EAS Build), store uploads (EAS Submit), over the air updates (EAS Update), CI (Workflows), hosting, for Expo and React Native apps

Price
AppForShare

Free, Pro $12/month with a 7 day free trial, Team $39/month (5 seats). Yearly = 10 months. Lower regional prices in many countries.

Expo EAS

Free $0 (cannot incur overage); Starter $19/month with $45 of build credit; Production $199/month with $225 of build credit; Enterprise custom, build credit from $1,000. Unlimited members on every plan

Builds
AppForShare

Does not build. Takes builds from EAS, eas build --local and any CI. Can set up builds on your own GitHub Actions minutes, with an Expo preset that runs expo prebuild first (Pro and Team).

Expo EAS

15 Android and 15 iOS builds a month on Free (low priority queue, 45 minute timeout). After credit: Android $1 to $2, iOS $2 to $4 per build

Over the air updates
AppForShare

No. Whole builds only, no SDK. The build page shows which update channel and runtime version a test build reads.

Expo EAS

Yes: channels, branches, percentage rollouts and revert. Free 1,000 MAUs, Starter 3,000, Production 50,000

Install links
AppForShare

Link and QR code per build; EAS builds arrive by webhook, Workflows job or CLI

Expo EAS

One URL per internal distribution build, with a QR code on the build page

Link that always opens the newest build
AppForShare

Channel links (Beta, Live) with rollback; iPhone and Android on one link (Pro and Team)

Expo EAS

Not found in the internal distribution docs

Link protection
AppForShare

Password per build, signed download links that expire; pause, stop date and install limit per link on Pro and Team; private projects for invited testers on Team

Expo EAS

Anyone with the URL, or a project switch that requires an Expo login

Tester accounts
AppForShare

Never needed. Private projects for invited testers use an emailed link (Team).

Expo EAS

Not needed when unauthenticated access is on; an Expo account when it is off

iOS devices
AppForShare

Free UDID finder built in, saves devices to your account, imports UDID lists. Pro adds an onboarding link per app and one click registration on Apple; Team can register, remake the profile and start the build hands free. Devices import also reads eas device:list --json.

Expo EAS

eas device:create: a registration URL, Apple Developer Portal import, typed UDIDs or the current Mac. Devices reach Apple when the next build includes them; Workflows can ask for a device with team approval

Install page languages
AppForShare

13 languages picked from the phone

Expo EAS

Not found in its docs

Tester feedback
AppForShare

From the install page and from inside the test build through a link, with screenshots, no SDK (every plan with an account). TestFlight screenshot and crash feedback in the same inbox (Team). Send to Linear or Jira (Pro and Team).

Expo EAS

Not found for internal distribution. Expo's MCP server can read TestFlight feedback and crashes

Store readiness check
AppForShare

Every account build checked against App Store and Google Play rules, plus Expo checks (development client, update channel, runtime version), with a fix per issue (Free and up)

Expo EAS

Not found in its docs

Store upload
AppForShare

Send an uploaded App Store .ipa to TestFlight or an .aab to a Google Play testing track (Pro); a Google Play production release as a draft (Team). An Admin sends with a confirm tick.

Expo EAS

eas submit to App Store Connect and any Google Play track, with a one time rollout fraction; Workflows testflight job with groups and Beta App Review

App Store review
AppForShare

Checklist before sending, then an Admin sends, cancels, releases and controls the 7 day phased release (Pro and Team)

Expo EAS

Not part of EAS Submit: you send for review in App Store Connect

Google Play rollout
AppForShare

Every track and release notes (Pro); production rollout set, raise, halt, resume, complete or a rollout plan, with crash and ANR rate per version code from Google Play shown read only (Team)

Expo EAS

Track, release status and a one time rollout fraction on submit

Store listing
AppForShare

App Store and Google Play listing editor with screenshots and AI translation; import and export Expo's store.config.json (Pro and Team)

Expo EAS

EAS Metadata: App Store listing from store.config.json, in beta, no screenshots, Google Play not implemented

Members
AppForShare

Free and Pro 1 seat, Team 5 seats then $6 a month each; testers never need a seat

Expo EAS

Unlimited on every plan

Pull requests
AppForShare

One comment per pull request with iOS and Android install links, QR codes and the readiness result, updated on each run (Pro and Team)

Expo EAS

Workflows github-comment job with build QR codes

AI coding tools
AppForShare

Hosted MCP server with OAuth sign in, and an npm MCP package: uploads, links, readiness, testers, release status (Pro and Team)

Expo EAS

Hosted MCP server with OAuth sign in: builds, submits, workflows, TestFlight feedback, Play crashes, simulators

CI
AppForShare

CLI, GitHub Action, fastlane and Gradle plugins, guides for Expo Workflows and GitHub Actions (Pro and Team)

Expo EAS

Expo Workflows (YAML in .eas/workflows), billed per minute after the plan

Expo EAS details checked on November 2026 from its public pages (Expo pricing, Internal distribution, EAS Submit, EAS Update rollouts, Workflows pre-packaged jobs, EAS Metadata, EAS webhooks, Expo MCP server, Usage based pricing). Plans change; tell us at contact if something here is out of date.

Use both: EAS builds, AppForShare shares

The shortest way is Connect Expo (Pro and Team): AppForShare gives your project a webhook address and a secret, and you run eas webhook:create --event BUILD once with them. Each finished internal build then lands in AppForShare a few minutes after EAS is done, with the commit as release notes and the build profile mapped to a channel, for example preview to Beta. AppForShare checks Expo's signature before it downloads anything, and store builds are skipped with a note because they cannot be installed from a link.

Prefer to keep it in your pipeline? In Expo Workflows add a custom job that runs eas/download_build and then npx --yes appforshare upload with the downloaded file, with APPFORSHARE_TOKEN as an Expo secret. On GitHub Actions or your laptop, appforshare upload --eas <build id> fetches the build through eas-cli on the same machine, so your EXPO_TOKEN never leaves it.

When the EAS link is enough

Said plainly: if a few developers install each build themselves, the internal distribution link from EAS costs nothing extra and works. Expo also builds iOS apps without a Mac, manages your signing credentials, hosts over the air updates with rollouts, runs Maestro tests in Workflows, has unlimited members on every plan and SSO on Production. AppForShare replaces none of that.

AppForShare is worth adding when people outside the team test: clients, QA vendors, stakeholders. They get one link that keeps working, a password or a code, an install page in their language, a way to send their iPhone without an Apple sign in, and a feedback button. You get the readiness check, installs, and the App Store and Google Play steps after EAS Submit, for Expo, Flutter and native apps in one place.

Switching guides

Questions

Can I keep building on EAS and use AppForShare?
Yes. EAS builds; AppForShare takes the finished file from an EAS webhook (Connect Expo), a Workflows job, your CI or the CLI.
Why not just send the EAS link?
You can. AppForShare adds a link that always opens the newest build, passwords and link controls, iPhone onboarding, tester feedback, a readiness check with Expo checks, and store steps.
Does AppForShare build my app like EAS?
No. It can set up builds on your own GitHub Actions minutes (Pro and Team), with an Expo preset that runs expo prebuild first. It never builds on its own machines.
Does AppForShare do over the air updates?
No. It shares whole builds; there is no SDK. EAS Update keeps working in builds you share with AppForShare, and the build page shows which update channel a build reads.
Do testers need an account?
No, on either for public links. EAS can require an Expo login; AppForShare uses passwords, access codes or emailed links instead.
Does AppForShare register iPhones like eas device:create?
Yes, with an onboarding link and your App Store Connect API key (Pro); no Apple ID sign in. Then import the devices in EAS from the Apple Developer Portal, or let EAS refresh the ad hoc profile, and build again.
Can AppForShare send a build to TestFlight like eas submit?
Yes, for an App Store signed .ipa you uploaded: an Admin sends it to TestFlight, or an .aab to a Google Play testing track (Pro), or a production draft (Team). eas submit stays a fine choice if it already runs in your pipeline.
Is there an MCP server?
Yes, hosted with OAuth sign in (Pro and Team). Expo has one too; both can be connected side by side.

Try it with your next build

No account needed for a first upload. Free accounts keep links for longer.

Other comparisons