본문 바로가기
Frontend

[React Native] Expo cli로 App Build 하기

by 구라미 2024. 1. 18.

 

 

Expo란?

Expo는 React Native을 기반으로 더욱 쉽고 빠르게 앱서비스를 개발할 수 있게 도와주는 도구로, 앱개발에 필요한 여러가지 기능 들을 제공하고 있다. 예를 들면 카메라, 위치, 알람 등 다양한 기능을 구현할 때 도움을 주는 API 등이 있다. 

만약 React Native 앱을 Expo로 개발했다면 Build 할 때도 Expo에서 제공하는 서비스로 쉽고 간단하게 App을 Build 할 수 있다. Expo로 App을 Build하기 위해서는 우선 expo-cli 를 설치해야 한다.

 

1) 전역으로 Expo Cli 설치

npm install -g expo-cli

 

Expo Cli 설치가 완료가 되었다면, Expo에서 EAS 즉 Expo Application Services라는 빌드&배포 서비스를 이용하기 위해서는 expo에 회원가입이 되어있어야한다. Expo 웹사이트에서 회원가입을 진행하여 계정을 생성하도록 하자.

https://expo.dev/

 

Expo

Expo is an open-source platform for making universal native apps for Android, iOS, and the web with JavaScript and React.

expo.dev

 

2) EAS Cli 설치

EAS도 Cli 도구를 제공하고 있다. 이것이 있으면 명령어로 앱을 빌드하는 것이 가능하다. EAS Cli도 설치하도록 하자

npm install -g eas-cli

 

3) EAS 로그인

Expo Cli, EAS Cli 모두 설치가 완료가 되었고 회원가입도 완료하였다면 다음의 명령어 입력후 로그인을 진행하면 된다.

eas login

 

4) app.json, eas.json 설정

app.json 설정

app.json 설정 내분의 slug와 owner, extra > eas > projectId를 Expo.dev 로그인 한 후 대시보드의 Project의 설정과 값이 같아야한다.

 

eas build:configure

이 명령어를 실행하면 eas.json파일이 생성된다. eas.json 설정에 대한 설명은 문서에 제공되고 있다. https://docs.expo.dev/eas/json/

 

eas.json

Learn about available properties for EAS Build and EAS Submit to configure and override their default behavior from within your project.

docs.expo.dev

 

eas.json에서 dev와 prod 버전을 나눠서 프로필을 정의할 수 있다. 여러개의 프로필을 정의해서 빌드환경을 다르게 설정할 수도 있다. 
아래는 expo docs에서 제공하는 멀티 프로필 정의 예시이다. 

{
  "cli": {
    "version": "SEMVER_RANGE",
    "requireCommit": boolean
  },
  "build": {
    // EAS Build configuration
  }
  "submit": {
    "SUBMIT_PROFILE_NAME_1": {
      "android": {
        ...ANDROID_OPTIONS
      },
      "ios": {
        ...IOS_OPTIONS
      }
    },
    "SUBMIT_PROFILE_NAME_2": {
      "extends": "SUBMIT_PROFILE_NAME_1",
      "android": {
        ...ANDROID_OPTIONS
      }
    },
  }
}

참고: https://docs.expo.dev/submit/eas-json/

 

 

5) EAS로 빌드해서 Android apk 뽑기

각각의 플랫폼에 맞게 빌드하는 명령어인데, ios로 빌드하려면 Apple 개발자 계정이 있어야한다.

# android 빌드
eas build --platform android

# ios 빌드
eas build --platform ios

 

Android 빌드 명령어를 실행하면 keystore를 생성하겠냐고 물어보는데 yes를 선택하면 이어서 빌드가 진행된다.

 

댓글