
React Native CI/CD 서비스인 Expo Application Services(EAS)는 간단하게 개발 및 릴리스 프로세스를 자동화할 수 있다.
EAS는 환경이 크게 Managed Workflow와 Bare Workflow로 나뉜다.
중간 단계인 Custom Workflow도 존재한다고는 하나, 실제로 공식 문서에서 쓰이는 말인지는 잘 모르겠다.
오늘은 Managed Workflow에 대해 간단히 정리해볼 예정이다.
물론 지극히 개인적인 경험에 의한, 얕은 정리이다.
간단히 말하자면 JS/TS 코드만 작성하고, Expo가 빌드 및 설정 관리를 해주는 방식이다.
따로 네이티브 코드를 만질 필요도 없고, 테스트나 빌드도 굉장히 간단하다.
Managed Workflow에서는 Expo go로 테스트가 가능하다.
npm start
위 명령어를 실행시킨 후 iOS에서는 카메라로, Android에서는 Expo go 앱에 들어가 QR코드를 스캔하면 된다.
다만 이상하게 iOS보다 Android에서 Expo go와 빌드 환경에서의 UI가 확연하게 차이났다. (개인적인 경험)
실제 환경에 가깝게 빌드를 하려면 아래 명령어를 사용해 expo.dev에서 받을 수 있다. 명령어를 치면 링크가 나오는데, 그걸 클릭해서 들어가도 된다. 어차피 동일하다.
eas build --platform ios
eas build --platform android
eas.json에 production과 staging 등 여러 개발 환경으로 나누어 빌드가 가능하다.
iOS는 TestFlight로 배포하거나, .ipa 파일을 직접 다운로드해 시뮬레이터 또는 실제 기기에 설치가 가능하다..고는 하는데, 나는 TestFlight만 써봤다. 이 방식도 아주 간편하다.
Android는 .aab 파일로 나온다. .aab는 플레이스토어에서 사용하는 앱 배포 포맷으로, 안드로이드 폰으로 간단하게 테스트할 때는 .apk가 더 편하다.
따라서 .apk로 받으려면 eas.json에 아래 부분을 추가하고 명령어를 실행하면 된다.
여기서 release는 환경 이름이라 각자 프로젝트에 맞게 수정하면 된다.
{
"build": {
"release": {
"android": {
"buildType": "apk"
}
}
}
}
eas build --platform android --profile release