Allow `eas upload` and `eas build --local` to tag builds with a build profile
Stefano Faieta
Today, any build that ends up on EAS via a local path is forced to:
- distribution = Internal
- profile / runtime / channel = None
- a "Local" chip on the dashboard
This happens because
packages/eas-cli/src/commands/upload.ts
hardcodesdistribution: DistributionType.Internal
in createLocalBuildAsync
, andneither
eas upload
nor eas build --local
accepts --profile
,--channel
, --distribution
, or --runtime-version
flags.Use case:
I build my production iOS binary locally (to keep signing under my
control, to avoid EAS build minutes, or to iterate faster) and then
submit it to App Store Connect with
eas submit
. I would like theresulting row on expo.dev to accurately reflect that this was a
"production" profile build, with the correct channel and runtime, so
that:
- The dashboard gives a truthful audit trail of what went to the store.
- EAS Update channel resolution works correctly against the build.
- Teammates can tell production binaries apart from dev or preview
builds at a glance.
Proposed solution:
Add the following flags to
eas upload
(and surface the same metadataon
eas build --local
):--profile <name> Build profile from eas.json to tag
the upload with
--distribution <type> internal | store
--channel <name> EAS Update channel
--runtime-version <value> Runtime version (or read it from the
binary when possible)
Internally, this means:
- Accepting these flags in the oclif command spec.
- Resolving the profile via EasJsonAccessor the same way eas build
does.
- Passing the resolved values into LocalBuildMutation.createLocalBuildAsync
instead of the current hardcoded
DistributionType.Internal
.Workarounds today:
- eas build --local --auto-submitsubmits the binary to App Store
Connect correctly, but the EAS dashboard row is still stamped as
"Local / Internal / None / None".
- eas submit --path ./build.ipa --profile productiononly tags the
submission, not the build row.
Neither workaround gives a correct production row on the builds page.
Photo Viewer
View photos in a modal