- Node.JS 14
- Globally install the following Node packages:
expo-cli
@aws-amplify/cli
yarn
- Clone the repo
- Run
expo register
in the repo root to create an account- it should open a page in your browser: follow the prompts to create an account
- Run
yarn
in the repo root - Run
amplify init
in the repo root: this will walk you through the setup for your credentials. Our AWS region isus-west-2
, and make sure to elect to use an existing environment (staging
for all uses; only useproduction
for packages that will be submitted to an app store for users, and never test on this environment). The CLI will ask you to authenticate, do so via a new profile, and "use an existing user". Contact [email protected] for your AWS CLI credentials. - Run
expo start
in the repo root
- git clone the repository
- Run yarn install
- Run amplify init
- Run amplify pull
- Run amplify codegen
before every new task or build, you want to run the following commands at the beginning to ensure your local enviroment is in sync with the cloud enviroment.
- Run amplify pull
- Run amplify codegen
- install Expo Go from the app store
- log in with the same account you made during the register step
- scan the QR code with your camera app, and open the link in Expo Go
- iOS should ask you to allow Expo Go to access local networks, say yes
- scan the QR code again and you should see the app prototype
- install Expo Go from the Play Store
- log in with the same account you made during the register step
- scan the QR code with the Expo Go app
After pulling or merging new changes, you'll want to re-run expo install
to capture dependency changes. Then, check
for backend changes by running amplify status
, and amplify pull
to synchronize any new changes.
When installing a new package, it's important to always use expo install
instead of the equivalent yarn command. Until we switch to an Expo bare build, this command will ensure we use a version of each package made available to us in the Expo client.
- if you're getting errors trying to run
expo ...
commands- open Powershell as an administrator
- run
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- run the expo command again
check that you are in the amplify production environment and all backend resourses are up to date.
- run
amplify status
- env should be
production
- all resources should say no change
- make sure you've pulled recently
- in app.json go to ios > buildNumber and increment that number
- run
expo build:ios -t archive
- after the build has built, download it from the url provided
- upload build to transporter and hit deliver
- run
expo push:android:show
- if you don't see FCM API key listed, contact [email protected] for the key
- run
expo push:android:upload --api-key <your-token-here>
, replacing<your-token-here>
with the key - in app.json go to android > versionCode and increment that number
- run
expo build:android -t app-bundle
This app is structured using the atomic design philosophy, if you are unfamiliar with that you can read more about it here