EAS(Expo Application Services)는 클라우드에서 iOS/Android 앱을 빌드하고 스토어에 제출하는 서비스입니다.

로컬에서 빌드하면 Mac이 필요하고 환경 설정이 복잡합니다. EAS Build는 이 과정을 클라우드에서 자동화합니다.


EAS Build 설정

BASH
# EAS CLI 설치
npm install -g eas-cli
eas login

# 프로젝트 설정
eas build:configure
JSON
// eas.json
{
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "ios": { "simulator": true }
    },
    "preview": {
      "distribution": "internal",
      "android": { "buildType": "apk" }
    },
    "production": {
      "autoIncrement": true
    }
  },
  "submit": {
    "production": {
      "ios": { "appleId": "your@email.com", "ascAppId": "1234567890" },
      "android": { "serviceAccountKeyPath": "./google-sa-key.json" }
    }
  }
}

빌드와 제출

BASH
# 개발용 빌드
eas build --platform ios --profile development

# 프리뷰 빌드 (내부 테스트)
eas build --platform all --profile preview

# 프로덕션 빌드
eas build --platform all --profile production

# 스토어 제출
eas submit --platform ios --profile production
eas submit --platform android --profile production

# 빌드 + 제출 한 번에
eas build --platform all --profile production --auto-submit

GitHub Actions 연동

YAML
# .github/workflows/eas-build.yml
name: EAS Build

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci

      # EAS Build 실행
      - uses: expo/expo-github-action@v8
        with:
          eas-version: latest
          token: ${{ secrets.EXPO_TOKEN }}
      - run: eas build --platform all --profile production --non-interactive --auto-submit

환경별 설정

TSX
// app.config.ts — 동적 설정
export default ({ config }) => {
  const isProduction = process.env.APP_ENV === 'production';

  return {
    ...config,
    name: isProduction ? 'MyApp' : 'MyApp (Dev)',
    ios: {
      bundleIdentifier: isProduction
        ? 'com.myapp'
        : 'com.myapp.dev',
    },
    android: {
      package: isProduction
        ? 'com.myapp'
        : 'com.myapp.dev',
    },
    extra: {
      apiUrl: isProduction
        ? 'https://api.myapp.com'
        : 'https://api-staging.myapp.com',
    },
  };
};

정리

  • EAS Build 를 사용하면 Mac 없이도 iOS 앱을 빌드할 수 있습니다
  • development, preview, production 세 단계 프로필 로 관리하세요
  • GitHub Actions 와 연동하면 코드 푸시만으로 자동 빌드/배포가 가능합니다
  • eas submit으로 App Store와 Google Play에 자동 제출 할 수 있습니다
  • 환경별 설정은 app.config.ts에서 동적으로 관리하세요
댓글 로딩 중...