Skip to content

EAS Builds

The app uses Expo Application Services (EAS) for building and distributing.

Build Profiles

Defined in eas.json:

ProfilePurposeDistribution
developmentLocal developmentSimulator/device
previewTesting buildsInternal testers
productionApp Store/Play StorePublic

Building

Development Build

For local development with full native capabilities:

bash
# iOS
eas build --profile development --platform ios

# Android
eas build --profile development --platform android

Preview Build

For internal testing:

bash
eas build --profile preview --platform all

Production Build

For store submission:

bash
eas build --profile production --platform all

Configuration

eas.json

json
{
  "cli": {
    "version": ">= 5.0.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "ios": {
        "simulator": true
      }
    },
    "preview": {
      "distribution": "internal"
    },
    "production": {}
  },
  "submit": {
    "production": {}
  }
}

app.json

Key configuration:

json
{
  "expo": {
    "name": "Logbook",
    "slug": "logbook",
    "version": "1.0.0",
    "ios": {
      "bundleIdentifier": "so.logbook.app",
      "supportsTablet": true
    },
    "android": {
      "package": "so.logbook.app",
      "adaptiveIcon": {
        "foregroundImage": "./assets/adaptive-icon.png"
      }
    }
  }
}

Credentials

iOS

EAS manages iOS credentials automatically. To manage manually:

bash
eas credentials --platform ios

Android

For Play Store:

bash
eas credentials --platform android

Submitting

iOS (App Store)

bash
eas submit --platform ios

Android (Play Store)

bash
eas submit --platform android

OTA Updates

For JavaScript-only updates without rebuilding:

bash
eas update --branch production --message "Bug fix"

Users receive updates on next app launch.

Environment Variables

Set build-time environment variables:

bash
eas build --profile production \
  --environment-variables API_URL=https://api.logbook.so

Or in eas.json:

json
{
  "build": {
    "production": {
      "env": {
        "API_URL": "https://api.logbook.so"
      }
    }
  }
}

Monitoring Builds

Check build status:

bash
eas build:list

View build logs:

bash
eas build:view

Built with VitePress