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 resultingipafile. Drag theipainto Transporter.app to upload it to the App Store.
The upload:ios command was implemented as follows:
expo-clipackaged a library calledtraveling-fastlane- a standalone, cross-platform fastlane wrapper.fastlaneis a Ruby library, andtraveling-fastlanedepends ontraveling-rubyto provide a self-contained cross-platform Ruby executable. The Ruby version intraveling-rubymust be compatible with thefastlaneversion.expo-cliwould download your app binary (usingexpo url:ipa) and then call intotraveling-fastlaneto invokefastlane deliverwith 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 deliveronly 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.