New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP][docs] Add EAS Tutorial #27059
base: main
Are you sure you want to change the base?
[WIP][docs] Add EAS Tutorial #27059
Conversation
📘 Your docs preview website is ready! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow, that's a huge amount of work, congrats! 👏
I added some comments based on my first read-though.
|
||
- Use the Sticker Smash app from the previous tutorial. If you haven't followed the previous tutorial, download the complete source code from [this GitHub repository](https://github.com/amandeepmittal/sticker-smash-expo-tutorial-app) and set the project on your local machine. **We're going to use this as our example app**. | ||
- Create a new project with [`npx create-expo-app`](/get-started/create-a-project/). | ||
- Create and use a project generated by React Native CLI (also known as bare React Native project). It will contain the native directories (**android** and **ios**). You'll have to install the `expo` package (either [automatically](/bare/installing-expo-modules/) or [manually](/bare/installing-expo-modules/#manual-installation)) in the project before you proceed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe put this under "prerequisites"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean changing the title of the section to Prerequisites? Or create a sub section here for it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I originally meant having a section called "Prerequisites", but looking back again, just renaming the section would work as well, because it tells you, in order to do this tutorial, you need a React Native project: either use an existing project, create one or use Sticker Smash
"cli": { | ||
/* @hide ... */ /* @end */ | ||
/* @info Add the appVersionSource property and set it to remote*/ | ||
"appVersionSource": "remote" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to recommend this? It makes me uncomfortable not managing it manually, it's not clear what makes it increment.
|
||
## Add Google Service Account permissions key | ||
|
||
From now on, we can use [EAS Submit](/submit/introduction/) to automate releases and avoid the manual process. To do that, we need to add the service account key to our project's **eas.json**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can only do this if you fill out all the metadata (including app assets etc) and it also has to go through a review process. Maybe this should be in a separate lesson?
To publish and distribute an app on the Google Play Store, we need to: | ||
|
||
- Have a paid developer account. To create one, follow the instructions on the [Google Play sign-up page](https://play.google.com/apps/publish/signup/). | ||
- Google Service Account email and JSON key. To create one, follow the instructions from our [expo.fyi](https://github.com/expo/fyi/blob/main/creating-google-service-account.md) guide. Once you've followed the steps, come back to this guide. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be optional as it's only required if you want to submit automatically
}, | ||
"ios-simulator": { | ||
/* @hide ... */ /* @end */ | ||
"channel": "ios-simulator" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't the channel be "development" here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Channel names can be fully controlled by users, and it should not affect functionality in any way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know you can, I just meany why would you have a separate channel for the iOS simulator, surely you'd just use the development
channel.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When there is an additional build profile in eas.json (apart from the default ones) and on running eas update:configure
, it creates a channel for each profile based on the its name automatically. In a way, this is the default configuration based on the steps followed in the tutorial. I didn't originally thought of changing it. However, I see your point from app's development point of view. For example, my app is in development phase, I want to keep the development related config same for all environments.
I think I'll just update this in the tutorial and make a note for the reader to remember removing it before proceeding since the ios-simulator
profile already extends development
profile.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added the callout describing the above behaviour.
Co-authored-by: Kadi Kraman <kadi@expo.io> Co-authored-by: Bartosz Kaszubowski <gosimek@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀
Co-authored-by: Quinlan Jung <quin@expo.io>
Co-authored-by: Brent Vatne <brentvatne@gmail.com>
Why
Add EAS tutorial section in Learn.
How
Test Plan
See preview: http://docs.expo.dev-pr-27059.s3-website-us-east-1.amazonaws.com/tutorial/eas/introduction/
Checklist
npx expo prebuild
& EAS Build (eg: updated a module plugin).