Skip to content
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

Open
wants to merge 34 commits into
base: main
Choose a base branch
from

Conversation

amandeepmittal
Copy link
Member

@amandeepmittal amandeepmittal commented Feb 12, 2024

⚠️ WIP - do not mege

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

Copy link

linear bot commented Feb 12, 2024

@expo-bot expo-bot added the bot: passed checks ExpoBot has nothing to complain about label Feb 12, 2024
@expo-bot
Copy link
Collaborator

expo-bot commented Feb 12, 2024

📘 Your docs preview website is ready!

Copy link
Contributor

@kadikraman kadikraman left a 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.

docs/pages/tutorial/eas/introduction.mdx Outdated Show resolved Hide resolved
docs/pages/tutorial/eas/introduction.mdx Outdated Show resolved Hide resolved

- 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.
Copy link
Contributor

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"?

Copy link
Member Author

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?

Copy link
Contributor

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

docs/pages/tutorial/eas/configure-development-build.mdx Outdated Show resolved Hide resolved
docs/pages/tutorial/eas/configure-development-build.mdx Outdated Show resolved Hide resolved
"cli": {
/* @hide ... */ /* @end */
/* @info Add the appVersionSource property and set it to remote*/
"appVersionSource": "remote"
Copy link
Contributor

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**.
Copy link
Contributor

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.
Copy link
Contributor

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"
Copy link
Contributor

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?

Copy link
Collaborator

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.

Copy link
Contributor

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.

Copy link
Member Author

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.

Copy link
Member Author

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.

docs/pages/tutorial/eas/using-github.mdx Outdated Show resolved Hide resolved
amandeepmittal and others added 3 commits February 14, 2024 21:17
Co-authored-by: Kadi Kraman <kadi@expo.io>
Co-authored-by: Bartosz Kaszubowski <gosimek@gmail.com>
Copy link
Member

@quinlanj quinlanj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

docs/pages/tutorial/eas/team-development.mdx Outdated Show resolved Hide resolved
docs/pages/tutorial/eas/team-development.mdx Outdated Show resolved Hide resolved
docs/pages/tutorial/eas/introduction.mdx Outdated Show resolved Hide resolved
docs/pages/tutorial/eas/introduction.mdx Outdated Show resolved Hide resolved
docs/pages/tutorial/eas/configure-development-build.mdx Outdated Show resolved Hide resolved
amandeepmittal and others added 2 commits March 6, 2024 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: passed checks ExpoBot has nothing to complain about preview
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants