In expo-cli@4
, expo upload:ios
has been moved to eas submit
in the package eas-cli
.
- EAS Submit - this is the closest equivalent to
expo upload:ios
. By default it works best witheas build
, but you can also use it withexpo build:[ios|android]
. This option is currently available to EAS Priority Plan subscribers, but will be part of the free tier when EAS Submit graduates from feature preview. - Transporter.app - download this app to your macOS machine, open it, then run
expo build:ios
, download the resultingipa
file. Drag theipa
into Transporter.app to upload it to the App Store.
The upload:ios
command was implemented as follows:
expo-cli
packaged a library calledtraveling-fastlane
- a standalone, cross-platform fastlane wrapper.fastlane
is a Ruby library, andtraveling-fastlane
depends ontraveling-ruby
to provide a self-contained cross-platform Ruby executable. The Ruby version intraveling-ruby
must be compatible with thefastlane
version.expo-cli
would download your app binary (usingexpo url:ipa
) and then call intotraveling-fastlane
to invokefastlane deliver
with the appropriate parameters.
Traveling Ruby hasn't been updated for a long time and isn't something we can depend on to stay up to date with fastlane's Ruby version requirements. Ruby <= 2.3 stopped being supported as of fastlane 2.147.0, and that was the latest version of Ruby that shipped with Traveling Ruby.
In addition to this dependency situation, there were some significant limitations with the fastlane
approach:
fastlane deliver
only works on macOS machines.- It can fail if the developer's Xcode version out of date.
So, we built a replacement - EAS Submit. This is a hosted service that works on macOS, Windows, Linux, and any other platform where Node.js & eas-cli will run.