❓ EAS helps with building and app submission. It can create and store all important credentials so that we don't have to distribute them among everyone.
- Default build profiles in
eas.json:dev- this profile will build anexpo-dev-client, meaning that after installing the app, one can change non-native code and see changes reflected in the appstaging- should be distributed for testing, does not have a dev client, meaning it cannot be manipulated. It buildscom.xxx.xxx.stagingapplication which can be distributed through a link or a QR code.
For iOS, we need to add devices for EAS testing (development, staging) via
eas device:create(creates sharable registration link) and confirm the device has been added. It is good to write down your unique device ID to understand what is your device.
production- non-distributable build that should be submitted to Play Store and App Store. Can be tested through Play Store internal testing track or Testflight. It builds the officialcom.xxx.xxxpackage later released to production.
- Setup your project with your EAS account by running:
npx eas init
- Set up
App Store Connect API Keysforstagingandproductionby running:npx eas credentials -p ios
To allow the GitHub Action to conduct builds, you must build the app for the first time using the EAS CLI. This will create the necessary credentials and allow the GitHub Action to access them.
Run the following commands:
npx eas build --platform ios --profile dev-sim
npx eas build --platform ios --profile dev
npx eas build --platform ios --profile staging --auto-submit
npx eas build --platform ios --profile production --auto-submit
- Add the Expo URL to the
expoConfiginapp.config.ts.
updates: {
fallbackToCacheTimeout,
url: 'https://u.expo.dev/project-id',
},
- Before conducting over-the-air updates, validate that the channels are setup against correct branch (environment).
npx eas channel:list
- if not, you can change it by running
npx eas channel:edit