/appjs-one

Setup a pro development process with Expo and EAS

Primary LanguageTypeScript

appjs-one

Setting up a professional development process with Expo and EAS Workshop

Using word-checkapp from from https://github.com/jonsamp/word-check Check if a word is playable in the game of SCRABBLE™️.

Get started

Install dependencies

yarn

Then run the app

yarn start

Release

Prepare the build

Double check if you are signed in with your expo.dev account from your terminal

eas whoami
eas login

We need to change our app credentials

// app.json

{
  "expo": {
    "owner": "appjs-one",                    # expo organisation
    "ios": {
      "bundleIdentifier": "appjsone.words",  # application identifier
    },
    "android": {
      "package": "com.appjsone.wordcheck",   # application identifier
    }
  }
}

How to make a build?

Configure eas.json options

eas build:configure

Ship the ios build to production

eas build --profile production --ios

Custom plugins

To check the results, from VSCode command + shift + P and

Expo: Preview modifier
ios.infoPlist

Here is a link with config-plugins examples

Prepare a device to run a build

eas device:create
// app.json

  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal",
    },
  }
eas build --profile development --platform all

Side by side Installation : app.config.js

We want a development build and production build of our managed Expo project.

const IS_DEV = process.env.APP_VARIANT === "development";

export default {
  "name": IS_DEV ? "Word Check (Dev)" : "Word Check",
  "ios": {
    "bundleIdentifier": IS_DEV ? "appjsone.words.dev" : "appjsone.words",
  },
}

Side by side Installation : eas.json

{
  "build": {
    "development": {
      "developmentClient": true,
      "env": {
        "APP_VARIANT": "development"
      }
    },
    "production": {}
  }
}

Setup flipper

https://github.com/jakobo/expo-community-flipper

yarn add expo-community-flipper react-native-flipper
eas build --profile devlopement --platform ios

Release to the store

https://docs.expo.dev/submit/ios/

eas submit --platform ios
eas build --auto-submit

eas update

eas update:configure

add a channel

    "preview": {
      "distribution": "internal",
      "channel": "preview"
    },

Make an update compatible build

  1. Register your device eas device:create
  2. eas build --profile preview

Sending updates

eas update --branch preview
eas channel:view
eas channel:edit

Automation with GitHub Action

https://github.com/expo/expo-preview-action