RSS

EAS 배포와 앱 이관: 새 컴퓨터에서 빌드는 왜 쉬울까?

모바일 앱의 운영 환경을 정리하다 보면 Android Keystore, iOS 인증서, Provisioning Profile 같은 낯선 자격 증명을 만나게 된다. 이런 파일을 보고 있으면 새로운 컴퓨터에서 앱을 다시 빌드하는 일이 상당히 복잡할 것처럼 느껴진다.

하지만 Expo Application Services(EAS)가 정상적으로 구성된 프로젝트라면 실제 과정은 생각보다 단순하다. 앱 서명 자격 증명과 빌드 환경을 개발 컴퓨터가 아니라 EAS가 원격으로 관리할 수 있기 때문이다.

다른 컴퓨터에서 배포하는 것은 이관이 아니다

먼저 세 가지 상황을 구분해야 한다.

상황 난이도 필요한 핵심 요소
다른 컴퓨터에서 빌드 낮음 소스 코드와 Expo 계정 접근
다른 팀원이 배포 낮음 Expo 조직 멤버 권한
EAS·스토어 소유권 이전 높음 프로젝트, 서명 키, 스토어 계정 이전

컴퓨터만 바뀌는 경우 앱 자체의 소유권은 그대로다. 새 컴퓨터는 기존 EAS 프로젝트에 접속해서 빌드를 요청하는 역할만 한다. 따라서 이를 앱 이관이라고 부를 필요는 없다.

새 컴퓨터에서 EAS 빌드하기

기본 절차는 다음과 같다.

git clone <repository>
cd <project>

npm ci
npm install -g eas-cli@latest

eas login
eas whoami
eas project:info

프로젝트가 기존 EAS Project ID와 연결되어 있다면 별도의 eas init도 필요하지 않다. 프로젝트가 정한 Node 버전과 패키지 잠금 파일을 그대로 사용하는 것이 중요하다.

이제 필요한 프로필로 빌드를 요청하면 된다.

# Android 내부 테스트 APK
eas build --platform android --profile preview

# Android 운영 AAB
eas build --platform android --profile production

# iOS 운영 빌드
eas build --platform ios --profile production

EAS 클라우드 빌드에서는 Android Studio나 Xcode를 새 컴퓨터에 설치할 필요가 없다. 운영 서명 자격 증명을 EAS가 원격 관리 중이라면 JKS, P12, Provisioning Profile도 매번 내려받을 필요가 없다.

Expo는 원격 관리 방식과 로컬 자격 증명 방식을 모두 지원하며, 별도 설정이 없으면 원격 자격 증명을 기본으로 사용한다. Expo 로컬 자격 증명 안내

서명 키를 복원하지 않아도 되는 이유

EAS가 관리하는 자격 증명은 개발 컴퓨터가 아니라 EAS 프로젝트에 연결된다.

대표적으로 다음 항목이 있다.

  • Android Keystore와 비밀번호
  • iOS Distribution Certificate
  • iOS Provisioning Profile
  • App Store Connect API Key
  • 푸시 알림을 구성했다면 FCM·APNs 자격 증명

새 컴퓨터는 Expo 계정으로 로그인한 뒤 EAS에 빌드를 요청한다. 실제 서명은 EAS가 보관 중인 자격 증명을 사용해 수행한다.

그래서 운영 JKS와 P12 백업은 일상적인 빌드를 위한 파일이라기보다, EAS 프로젝트가 삭제되거나 계정을 이전해야 할 때 사용하는 비상 복구 자산에 가깝다. EAS 원격 자격 증명은 필요할 때 eas credentials로 내려받거나 다시 업로드할 수 있다. EAS 자격 증명 동기화

EXPO_TOKEN은 언제 필요한가?

개발 컴퓨터에서는 일반적으로 다음 명령으로 로그인하면 된다.

eas login

EXPO_TOKEN은 GitHub Actions처럼 사람이 로그인할 수 없는 CI 환경에서 주로 사용한다.

EXPO_TOKEN=<token> eas build \
  --platform android \
  --profile production \
  --non-interactive

EXPO_TOKEN은 앱 서명 키가 아니라 EAS에 접근하기 위한 자동화용 출입증이다. 토큰을 교체해도 이미 설치된 앱은 영향을 받지 않는다. 다만 CI에 올바른 토큰이 없으면 신규 빌드, EAS Update, 자동 제출이 실패할 수 있다.

스토어 자동 제출은 별도 자격 증명이 필요하다

앱을 빌드하는 것과 앱스토어에 제출하는 것은 서로 다른 단계다.

Android 자동 제출에는 Google Play 접근 권한을 가진 서비스 계정 키가 필요하다. iOS 자동 제출에는 App Store Connect API Key 또는 Apple 계정 인증이 필요하다.

eas build \
  --platform android \
  --profile production \
  --auto-submit

따라서 새 컴퓨터에서 AAB나 IPA를 만드는 것은 쉽지만, 스토어 자동 제출까지 수행하려면 제출 자격 증명도 EAS에 등록되어 있거나 안전한 저장소에서 복원할 수 있어야 한다. EAS Submit 안내

EAS Update도 컴퓨터에 종속되지 않는다

JavaScript와 에셋 변경만 배포하는 EAS Update 역시 특정 컴퓨터에 종속되지 않는다.

eas update \
  --channel production \
  --message "오류 수정" \
  --environment production

중요한 것은 배포 컴퓨터가 아니라 채널과 Runtime Version이다. 설치된 앱은 자신과 호환되는 Runtime Version의 업데이트만 적용한다.

네이티브 모듈이나 권한처럼 앱 바이너리에 영향을 주는 변경은 새로운 스토어 빌드가 필요하다. 반면 호환되는 JavaScript 변경은 EAS Update로 전달할 수 있다. EAS Update 배포 구조

진짜 앱 이관은 무엇이 다른가?

컴퓨터 교체와 달리 다음 상황은 실제 이관에 해당한다.

  • 개인 Expo 계정에서 조직 계정으로 프로젝트 이전
  • 개발사 계정에서 고객사 계정으로 소유권 이전
  • Google Play 개발자 계정 간 앱 이전
  • Apple Developer 팀 간 앱 이전
  • 기존 EAS 프로젝트를 폐기하고 새 프로젝트로 재구성

EAS 프로젝트와 Google Play·App Store의 앱 레코드는 서로 독립된 자산이다. EAS 프로젝트를 이전해도 스토어 앱 소유권이 자동으로 이전되는 것은 아니다. Expo 앱 이전 개요

EAS 프로젝트는 Expo 대시보드의 Project settings → General → Transfer project에서 이전할 수 있다. Expo 공식 안내에 따르면 원본과 대상 계정 양쪽에서 Owner 또는 Admin 권한이 필요하며 프로젝트 이전 횟수에도 제한이 있다. 이전 후에는 앱 설정의 소유자와 프로젝트 연결이 새 계정에 맞는지도 확인해야 한다. Expo 계정과 프로젝트 이전

이관을 위해 백업할 항목

Android

  • credentials.json
  • Keystore .jks
  • Keystore 비밀번호
  • Key Alias와 Key 비밀번호
  • Google Play 서비스 계정 키

iOS

  • credentials.json
  • Distribution Certificate .p12
  • 인증서 비밀번호
  • Provisioning Profile .mobileprovision
  • App Store Connect API Key .p8
  • Key ID와 Issuer ID

공통

  • Expo 프로젝트 소유 계정
  • EAS Project ID
  • EXPO_TOKEN
  • 빌드 프로필과 Update 채널
  • 환경변수 목록
  • Apple·Google·Expo 계정의 MFA 및 복구 수단

이 파일들은 소스 저장소에 커밋하면 안 된다. 암호화된 Vault에 파일과 메타데이터를 함께 보관하고 어떤 프로젝트와 앱 식별자에 사용하는 키인지 기록해야 한다.

배포 컴퓨터를 바꿀 때 체크할 것

새 컴퓨터에서는 다음 정도만 확인하면 된다.

  • 소스 저장소에 접근할 수 있는가?
  • 올바른 Node와 패키지 버전을 사용하고 있는가?
  • Expo 조직과 프로젝트에 접근할 수 있는가?
  • eas project:info가 기존 프로젝트를 가리키는가?
  • 빌드 프로필과 앱 식별자가 기존 운영 앱과 일치하는가?
  • 자동 제출을 한다면 스토어 자격 증명이 준비되어 있는가?
  • EAS Update 채널과 Runtime Version이 맞는가?

JKS나 P12부터 무조건 복원할 필요는 없다. EAS 원격 자격 증명이 정상이라면 별도의 로컬 복원 없이 빌드하는 것이 더 안전하다.

듀오랩스가 보는 관점

다른 컴퓨터에서 EAS 앱을 배포하는 과정은 본질적으로 단순하다.

소스 코드 준비
→ Expo 계정 로그인
→ 기존 EAS 프로젝트 확인
→ 빌드 프로필 선택
→ EAS 클라우드 빌드

복잡해지는 시점은 컴퓨터가 바뀔 때가 아니라 프로젝트 소유권이나 앱스토어 계정까지 바뀔 때다.

운영 서명 키 백업은 매번 빌드하기 위한 준비물이 아니다. EAS 프로젝트가 사라지거나 앱을 다른 조직으로 이전해야 하는 상황에서도 동일한 앱을 계속 업데이트할 수 있도록 보장하는 복구 수단이다.

이 차이를 이해하면 일상적인 배포 절차는 단순하게 유지하면서도 실제 이관과 장애 상황에는 훨씬 안전하게 대비할 수 있다.