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.