Async Office Hours: How to quickly publish to the App store & Play Store with EAS Submit

Expo
30 May 202314:47

Summary

TLDRIn this tutorial, Keith, a developer and success engineer with Expo, demonstrates how to set up automatic submissions of app builds to the App Store and Google Play Store using EAS Submit. He walks through the process of creating a Google service account and submitting an app to Google Play, followed by a guide on how to submit an iOS app to the Apple App Store via EAS Submit. Keith highlights key steps, offers tips for avoiding errors, and explains how to enable auto-submit for future builds, simplifying app deployment.

Takeaways

  • 🔑 EAS Submit automates the submission process for apps to both the Google Play Store and Apple App Store.
  • 📱 To submit an Android app, a Google service account is required, which can be created via the Google Cloud Platform.
  • 🛠️ The process involves setting up API access in the Google Play console and creating a service account in the Google Cloud platform.
  • 📂 You need to generate a JSON key file for the service account, which is then used in the submission process.
  • 🚀 Submitting through EAS Submit sends the app to the internal testing track on the Google Play Store, from where it can be promoted to production.
  • 📝 First-time submissions to the Play Store must be done manually to associate the app and its package name with the Play Store.
  • 🍎 For iOS apps, the first submission must also be done manually to set up App Store Connect API keys, but subsequent submissions can be automated.
  • 💻 With EAS Submit, developers can submit iOS apps to the App Store without needing a Mac, as Expo's cloud handles the submission via its cloud Mac servers.
  • 📤 Once set up, the EAS build process can be configured to automatically trigger EAS Submit after successful builds for both Android and iOS apps.
  • 🧰 EAS Submit can also handle app metadata, such as store descriptions and screenshots, during the submission process.

Q & A

  • What is the purpose of using EAS submit in the context of the script?

    -EAS submit is used to automate the process of submitting apps to app stores (Google Play and App Store) after a build is completed, streamlining the deployment workflow.

  • What prerequisites are required before setting up auto submission to the Google Play Store?

    -Prerequisites include having a paid developer account, creating a Google service account, having a completed Android Play Store build, and having an app already listed on the Google Play Store.

  • What steps are involved in creating a Google service account for Play Store submissions?

    -The steps include going to the Google Play Console, navigating to Setup > API access, linking or creating a Google Cloud project, creating a new service account, assigning the role 'Service Account User,' generating a JSON key, and linking the service account to the Google Play Console.

  • Why is manual submission necessary for the first time when using EAS submit for Android?

    -Manual submission is required the first time because the app and package name association needs to be established in the Play Store, which can only be done by manually uploading the APK/AAB file.

  • What happens when you submit your Android app using EAS submit?

    -By default, the app is sent to the internal testing track on the Play Store, which allows developers to test their app before promoting it to production.

  • What error did the speaker encounter during their first submission attempt and how was it resolved?

    -The speaker encountered an error due to targeting Android 13, which required filling out a form to declare that the app was not using the advertising API. This was resolved by submitting the form in the Google Play Console.

  • How does EAS submit handle iOS app submissions, and what are the prerequisites for it?

    -EAS submit for iOS automates the submission of apps to App Store Connect. Prerequisites include a paid developer account, EAS CLI installation, and a standalone app build for the App Store.

  • Why is the first submission for iOS apps also manual, similar to Android?

    -The first submission is manual because EAS submit needs to set up the App Store Connect API key, which is required for future automatic submissions to TestFlight.

  • What advantage does EAS submit provide to iOS developers who do not have access to a Mac?

    -EAS submit allows iOS app submissions to the App Store without a Mac by using Expo’s cloud Macs, bypassing the need for Apple’s Transporter app or command line tools that typically require macOS.

  • What additional features can EAS submit handle besides app submission?

    -EAS submit can also manage metadata, such as store descriptions and screenshots, to streamline the submission process further. This feature is especially useful for managing app store listings.

Outlines

00:00

👨‍💻 Setting Up Auto Submission for Google Play Store

Keith introduces himself as a developer and success engineer with Expo, discussing his live app on both the App Store and Play Store. He expresses a desire to automate the submission process using EAS Submit, focusing on submitting the app to Google Play Store. Keith walks through the steps for setting up the Google service account, linking it to the Play Store console, and creating a build. He highlights that while some steps are prerequisites (such as having a developer account), others like creating a service account involve following instructions from Google's platform. This is the most complex part of the auto-submission process.

05:01

📦 Preparing for Auto Submissions and First-Time Uploads

Keith explains the additional steps required for first-time Play Store submissions. The initial manual upload of the app creates an association between the package name and the app, which enables future automatic submissions. He then demonstrates running the EAS submit command for Android, which walks through selecting the build and uploading the service account key. He emphasizes that the app is submitted to the internal testing track by default, and the user will need to promote it to production later. Keith also discusses a submission error he encountered, which required filling out a new Play Store form due to Android 13 targeting, before successfully completing the submission.

10:04

📲 Auto Submitting Android Apps and Expediting Future Builds

Keith completes the Android submission process and reflects on how EAS submit can be set up for future auto submissions. He highlights that once the initial steps are complete, running a single build command can now trigger an auto submission process, saving time and effort. The submission sends the app to the internal track for testing, allowing him to later promote it to production. He notes that future builds can use the `EAS build --auto-submit` command to automatically submit the app after each successful build, further streamlining the release process for Android.

🍏 Setting Up EAS Submit for iOS App Submissions

Keith shifts focus to setting up EAS submit for iOS app submissions to the Apple App Store. He outlines the requirements, such as having a paid developer account and installing the EAS CLI. Similar to Android, the first submission must be done manually to set up the App Store Connect API key, but future submissions can be automated. He walks through running the `EAS submit -p iOS` command, choosing a build, and generating an App Store Connect API key for future auto submissions. Keith explains that after this initial manual step, future iOS builds can also be auto-submitted.

🚀 Automating iOS Submissions to TestFlight

Keith completes the iOS submission process, noting that it takes a few minutes for the app to be processed by Apple. He receives an email once the app is ready for TestFlight, allowing him to review and manage testers. Now that the first submission is complete, Keith explains how future builds can be auto-submitted using `EAS build --auto-submit`. He emphasizes the convenience of running a single build command to trigger both the build and the TestFlight submission, enabling a smoother workflow for testing and releasing iOS apps.

💻 Submitting iOS Apps Without a Mac

Keith highlights a significant advantage of EAS submit: the ability to submit iOS apps without needing a Mac. Normally, submitting apps to the App Store requires using Apple's Transporter app, which only runs on macOS. However, EAS submit runs on Expo's cloud infrastructure, bypassing the need for a local Mac. This makes the submission process more accessible to developers using other platforms. Keith wraps up the video by encouraging viewers to explore more about EAS submit and related Expo services through the documentation.

Mindmap

Keywords

💡EAS Submit

EAS Submit is a tool provided by Expo to automate the process of submitting app builds to app stores like Google Play and Apple App Store. In the video, the speaker demonstrates how to configure EAS Submit to automatically upload app builds after they are completed. It simplifies the submission process by handling authentication, uploading, and tracking submissions.

💡Google Play Console

Google Play Console is a platform where Android developers manage their apps that are published on the Google Play Store. In the video, the speaker explains how to set up API access in the Google Play Console to enable automatic submission of apps using EAS Submit. The Console is essential for managing app releases and handling service accounts.

💡Google Service Account

A Google Service Account is a special type of account used by apps or virtual machines to interact with Google's APIs. The speaker walks through the process of creating a Google Service Account, which is required to grant permissions for EAS Submit to interact with the Google Play Console. This account handles tasks like submitting app updates to the Play Store.

💡API Access

API Access refers to the permissions required for external tools (like EAS Submit) to interact with Google Play Console or other systems. In the video, API Access is configured to allow EAS Submit to automatically upload app builds to Google Play. The speaker shows how to manage API access by creating a new Google Cloud project and linking it to the Play Store.

💡Internal Track

The Internal Track is a release track on the Google Play Store where developers can upload their app for internal testing. In the video, the speaker mentions that when EAS Submit uploads an app, it first goes to the Internal Track, similar to how TestFlight works for iOS apps. Developers can then promote the app to production after testing.

💡TestFlight

TestFlight is a platform for testing iOS apps before they are released on the App Store. The speaker explains that EAS Submit automates the process of submitting iOS app builds to TestFlight, allowing for easy distribution to testers. Once the app is in TestFlight, developers can invite testers and get feedback before pushing the app to production.

💡App Store Connect

App Store Connect is the Apple developer platform where developers manage app submissions, releases, and testing on TestFlight. In the video, the speaker uses App Store Connect to manage the app submission process for iOS apps, explaining how EAS Submit simplifies the creation of App Store Connect API keys and the submission process to TestFlight.

💡App Store Connect API Key

An App Store Connect API Key is a token used to authenticate automated services like EAS Submit when interacting with App Store Connect. In the video, the speaker demonstrates how EAS Submit automatically creates this API key during the first submission, enabling future automated submissions to TestFlight without manual intervention.

💡Expo SDK

Expo SDK is a set of tools and libraries that developers use to build React Native apps. In the video, the speaker upgrades their app to the latest Expo SDK, which introduces compatibility with Android 13. However, the upgrade also triggers a Play Store requirement to declare the app’s usage of advertising IDs, demonstrating how changes in the SDK can affect the submission process.

💡Transporter App

The Transporter App is an Apple tool used to upload iOS apps to the App Store, traditionally available only on macOS. The speaker highlights that EAS Submit allows developers to submit iOS apps without needing a Mac or the Transporter App, as Expo Cloud manages this process on their servers, making the submission process platform-agnostic.

Highlights

Introduction to the developer's role at Expo and app submission goals.

Explanation of the purpose of EAS submit for automating app submissions to app stores.

Detailed walkthrough of setting up Google Play Store submission using EAS submit.

Prerequisites required for submitting an app, such as a paid developer account and Google service account setup.

Step-by-step guide for creating a Google Cloud project and a Google service account.

Important instruction on generating a service account key and securely storing it.

Instructions on linking the Google Cloud project to the Google Play console and assigning permissions.

Explanation that the first-time app upload must be done manually to create an association with the Play Store.

Using EAS submit to automate updates after the initial app association is complete.

Specific mention of how to handle errors like the Android 13 advertising ID requirement.

Details on managing internal track testing and promoting app updates to production in Google Play.

Explanation of auto-submitting new versions of the iOS app using EAS submit.

Process for generating an App Store Connect API key to facilitate auto-submission to TestFlight.

Insight on submitting iOS apps without needing a Mac by using Expo's cloud-based submission process.

Brief mention of additional EAS features like EAS metadata for attaching store descriptions and screenshots.

Transcripts

play00:00

hi my name is Keith I'm a developer

play00:01

success engineer with Expo I have an app

play00:04

that's on the App Store and play store

play00:05

it's live already and it's working great

play00:07

with the as build but I really want it

play00:10

to automatically submit to the App

play00:12

Stores when my build's done fortunately

play00:14

there's a way to do that it's a EAS

play00:16

submit so uh join me as we set that up

play00:19

for my app

play00:23

let's work on submitting my app to the

play00:25

Google Play store so you can go to

play00:28

docs.expo.dev and look for EAS submit

play00:31

and you'll see there's instructions here

play00:32

for the App Store and Play Store we're

play00:34

going to go to the Play Store here

play00:38

and there's a few prerequisites some of

play00:41

them I've already done so a paid

play00:44

developer account is required by apps

play00:46

already in the store so I have the

play00:47

developer account we need to create this

play00:49

Google service account I have not done

play00:50

that yet my app is of course I already

play00:52

have the Google Play console I also have

play00:55

already created a build that is going to

play00:58

be submitted so I have my completed

play01:00

Android play store build here

play01:02

so we're gonna head over to this

play01:04

creating a Google service account

play01:06

document right here

play01:15

so this could change this is of course

play01:19

entirely on the Google Play Store

play01:20

console side as of March 2023 this is

play01:23

how it goes and even though it could

play01:25

change a little bit there's a few steps

play01:27

involved and I thought it would be good

play01:28

to show someone walking through this

play01:30

because this is probably the most

play01:31

complex part of setting up Auto

play01:34

submission

play01:35

on Google Play okay we're in the Google

play01:37

Play console we're going to go down to

play01:39

setup and API access

play01:43

sometimes this will show like a little

play01:45

kind of starting screen just with a

play01:48

fancy design on it or icon and a button

play01:51

that says choose project to link for

play01:52

whatever reason mine's not showing that

play01:54

today but it's showing the very next

play01:55

screen after that which would let us

play01:57

either link an existing Google Cloud

play01:59

project or create a new one I'm going to

play02:01

go ahead and create a new one

play02:03

and hit save here

play02:06

Google Cloud project is now created

play02:09

and I will scroll down here to service

play02:12

accounts I need to create a new service

play02:14

account

play02:15

and this actually needs to be done on

play02:18

the Google Cloud platform

play02:20

so we're going to follow this link

play02:28

and then we're going to click create

play02:30

service account you can name this

play02:33

service account for your app or possibly

play02:36

for your Play Store account if you're

play02:40

going to be submitting multiple apps

play02:41

this can work for

play02:42

all the apps under your account

play02:48

if you want to add a description you

play02:51

could

play02:52

then you click the create

play02:54

and continue button

play02:56

now we need to select a role we want

play02:59

that to be service account user

play03:07

there's a lot of rules here so it can be

play03:09

a little

play03:10

difficult to find

play03:12

we want to look for service accounts

play03:16

and then service account user

play03:21

here we go

play03:22

then we can click done

play03:34

now we will make the key that will

play03:37

actually be used by EAS submit go to

play03:39

this little action button next to our

play03:42

service account

play03:44

and click manage keys

play03:49

then click add key and create new key

play03:55

we will choose Json

play04:02

and it's been saved to our computer

play04:05

be sure to keep this file in a safe

play04:07

place so we will need it again in a

play04:09

little while

play04:12

my downloads are safe enough

play04:15

now we need to head all the way back to

play04:17

the Play Store console

play04:20

and to the API access page

play04:27

to refresh these service accounts we

play04:29

should see our new service account

play04:33

and then click manage console

play04:34

permissions

play04:39

the defaults are usually fine here and

play04:42

then we can click invite user

play04:47

and then send invite

play04:50

and that we should be everything we need

play04:51

to do in the Play Store console for now

play04:54

so now we are ready to use es submit on

play04:58

the build that I already built

play05:01

do note that if this is the first time

play05:03

you're uploading your app to the Play

play05:05

Store you have to manually upload it you

play05:08

literally have to go into Play Store

play05:11

console create your app

play05:13

and then drag and drop the A B file and

play05:16

that actually creates the association

play05:17

between the app

play05:19

and the package name which is then used

play05:22

for future submissions so this is a

play05:24

limitation of the Google Play Store API

play05:27

but we've already done that one time so

play05:30

we're going to be able to submit an

play05:31

update with EAS submit so let's head

play05:34

over here to my project we'll run EAS

play05:37

submit

play05:39

Dash

play05:41

Android and this should walk us through

play05:43

any first time steps which will then set

play05:46

us up going forward to be able to use

play05:47

Auto submit

play05:52

let's select a build from EAS

play05:55

we'll use my latest build

play05:59

okay and now we're going to

play06:02

provide the path to the service account

play06:04

file I'm going to make this a very easy

play06:07

and rename it and drag it to my project

play06:09

for now and then delete it

play06:19

okay let's fix that terrible name here

play06:24

we'll just call it Play Store

play06:27

and then drag it over here

play06:29

I'm going to need to make sure I go

play06:31

delete it afterwards so if you're doing

play06:32

it the way I'm doing it be careful

play06:34

because I don't want to commit that

play06:38

but at least this makes this very easy

play06:43

and now it's submitting it has uploaded

play06:46

my key and taken my build ID and gone

play06:50

straight with it to submit to the Play

play06:52

Store

play06:56

and note by default it's going to send

play06:58

it to the internal track so so just like

play07:02

with iOS where submitting it is actually

play07:04

going to send it to test flight

play07:05

submitting with EAS submit is not going

play07:08

to send your app straight to production

play07:10

with the Play Store which is not

play07:12

something we usually want to do so it'll

play07:15

put it on the internal release track and

play07:17

then I can promote it to production

play07:24

so the first time I tried to submit my

play07:27

app I got an error but it was totally

play07:30

coincidental I had upgraded my app to

play07:33

the latest Expo SDK and that was the

play07:35

first time my app was targeting Android

play07:37

13 and there was a new requirement in

play07:40

the Play Store that I actually had to go

play07:42

fill out a form to declare that it was

play07:44

not using the advertising API or

play07:47

advertising ID I should say so I

play07:49

literally had to go to this app content

play07:51

thing and just say no

play07:53

and now I'm going to submit again

play07:58

I will select my latest build one more

play08:00

time

play08:01

and it's going to go straight away into

play08:03

the submit because I've already uploaded

play08:05

my Play Store key

play08:07

so wait for the submit to be complete

play08:13

and there it is my submission is

play08:15

complete I can go to my Play Store

play08:16

console and I could take a look at it

play08:25

let's go into my app here

play08:29

and go to

play08:32

my releases

play08:35

and now I have a new release

play08:38

in internal testing that I could then

play08:40

promote to production

play08:43

so that's it for submitting to Android

play08:46

of course you know the one other thing I

play08:48

will add is the next time I build I can

play08:50

actually use Auto submit so I could run

play08:52

EAS build

play08:54

my profile in there production usually

play08:57

for my platform Android and then use

play09:00

Auto Dash submit

play09:04

and then it will start the EAS submit

play09:07

directly after my build is done assuming

play09:10

it's successful of course so I can

play09:13

complete all of that from one step

play09:16

let's work on setting up EAS submit to

play09:19

Auto submit new versions of my IOS app

play09:22

to the App Store so you can go to

play09:25

docs.expo.dev

play09:27

and look for EAS submit there'll be

play09:30

directions for each platform I will go

play09:32

to submitting to the Apple App Store

play09:34

there's a few prerequisites here you'll

play09:36

need a paid developer account to submit

play09:38

your app

play09:39

so you can head over to

play09:41

developer.apple.com to learn more about

play09:44

that if you need one

play09:46

you'll need the EES CLI installed and

play09:50

also before you do the submission itself

play09:52

for the first time you'll want to build

play09:54

your Standalone app for the store

play09:57

which I have done right here I have a

play09:59

new build a new app store build

play10:03

I'm at the council for my app project

play10:06

here

play10:07

and it's a standard project I built it

play10:10

with EAS build

play10:12

I'm going to run EAS submits

play10:15

Dash p iOS

play10:18

and so we're going to eventually get to

play10:20

the point where we allow it to Auto

play10:23

submit but the first submission needs to

play10:25

be done manually because EAS submit will

play10:28

do all the initial setup including

play10:30

creating the App Store connect API key

play10:33

in this first step here and then after

play10:35

that you'll be able to do auto submit

play10:37

which will submit your app to test

play10:40

flight right after your build is

play10:43

completed

play10:45

so let's run that

play10:48

if you had just recently built you

play10:50

already have your Apple ID defaulted in

play10:52

here

play10:53

and you'll probably be restoring a App

play10:56

Store connect session that already

play10:57

exists

play11:00

select my team

play11:04

so I'm going to select a build from Eis

play11:06

you actually don't need to build your

play11:08

app on EAS build in order to use EAS

play11:11

submit but I have my build on the EAS

play11:13

submit about es build so let's select

play11:16

that

play11:17

I built it just recently so we'll pick

play11:18

the most recent one

play11:21

so this is the key here this is the part

play11:23

that needs to be set up so you'll be

play11:24

able to do auto submit in the future so

play11:27

we're going to use and this is I think

play11:29

the easiest way is a new app store

play11:32

connect API key and it'll create it for

play11:35

us

play11:37

choose yes it's now creating the key

play11:45

and now it's

play11:47

going to submit my app so this is the

play11:51

long part here using you to wait a few

play11:52

minutes for the submission process to

play11:54

complete and then of course Apple does

play11:56

some processing at its end and you um

play11:58

eventually get an email actually from

play12:00

App Store connect that tells you that

play12:02

your app is ready

play12:03

for test flight

play12:05

so we'll be back in a while once that's

play12:07

done

play12:11

we're back and our submission has

play12:13

completed now you get this helpful

play12:15

message here it says your binary has

play12:17

been successfully uploaded to App Store

play12:19

connect it is now being processed by

play12:21

Apple you'll receive an email when

play12:23

processing finishes I checked my inbox I

play12:25

did receive the email usually takes

play12:26

about five to ten minutes which is

play12:28

correct it also even gives you a helpful

play12:30

link to take you directly to your build

play12:33

and test flight and it'll take you right

play12:36

here so you'll see I previously had 1.01

play12:39

up there I have version 1.02 up there my

play12:42

bill is up there it's ready for me to

play12:45

add any new testers I already had one

play12:47

tester added so that build already went

play12:49

to them in test flight

play12:51

now that I've done the first submission

play12:53

I'm set up to do auto submit in the

play12:55

future so to do that I would do

play12:59

EAS build then choose my profile in this

play13:03

case will be my production profiles

play13:05

usually with the one I submit to

play13:07

actually make a production store build

play13:09

that'll eventually make it all the way

play13:10

live

play13:11

uh platform iOS

play13:16

and this would run your build just like

play13:18

normal but once your build is completed

play13:20

it would also automatically submit it it

play13:22

would do just what I did the first time

play13:25

manually with the EAS submit command so

play13:27

you can have a nice workflow here where

play13:29

you're running the one build command and

play13:32

data lays that building but it's also

play13:34

getting it right at the test flight so

play13:36

the very next step is wait for

play13:38

everything to be done and it shows up on

play13:40

your phone and test flight which is

play13:41

great and then from there you can do

play13:44

whatever you need to do in app store

play13:45

connect to release your app after you've

play13:48

tested it and there's also more things

play13:51

you can do with EAS submit you can find

play13:53

more in our docs especially about EAS

play13:54

metadata which allows you to attach like

play13:57

store descriptions screenshots and other

play13:59

information about your app along with

play14:02

your submission

play14:05

one more nice thing about EAS submit is

play14:08

with iOS apps you normally have to have

play14:11

a Mac to submit the app to the App Store

play14:14

that's because the transporter app from

play14:17

Apple only runs on a Mac

play14:19

and even if you're doing it from the

play14:21

command line you would still have to be

play14:22

using command line tools that can only

play14:23

run on the Mac well since EA submit runs

play14:27

unexposed Cloud on our our Cloud Max you

play14:30

can submit to the app store without a

play14:33

Mac

play14:34

and that's it for now you can learn more

play14:36

about all the things you can do with EAS

play14:38

a bit and other EAS Services by going to

play14:41

docs.expo.dev

play14:43

thank you for watching and have a great

play14:45

day

Rate This

5.0 / 5 (0 votes)

関連タグ
App SubmissionEAS SubmitExpoGoogle PlayApp StoreAutomationDeveloper ToolsBuild ProcessApp ReleasesMobile Apps
英語で要約が必要ですか?