Skip to content

[feat/MAT-526] EAS Update를 통한 OTA 업데이트 적용 및 동적 버전 표시#329

Merged
sterdsterd merged 3 commits into
developfrom
feat/mat-526-eas-update
May 12, 2026
Merged

[feat/MAT-526] EAS Update를 통한 OTA 업데이트 적용 및 동적 버전 표시#329
sterdsterd merged 3 commits into
developfrom
feat/mat-526-eas-update

Conversation

@sterdsterd
Copy link
Copy Markdown
Collaborator

Summary

Expo EAS Update를 도입하여 스토어 재심사 없이 즉각적인 자바스크립트 코드 및 에셋 업데이트(OTA)가 가능하도록 구성했습니다.
앱 실행 시 백그라운드에서 자동으로 새 업데이트를 다운로드하는 훅을 추가하고 환경 설정(채널 매핑, Fingerprint 런타임 정책 등)을 마쳤으며, 메뉴 설정 화면의 앱 버전을 하드코딩에서 expo-constants 기반의 동적 렌더링으로 개선했습니다.

Linear

Changes

  • app.config.ts 설정 업데이트: 1.2.0으로 버전업, runtimeVersion: { policy: 'fingerprint' }updates 관련 설정 추가, expo-updates 플러그인 등록
  • eas.json 설정 개선: 빌드 프로필(development, preview, production)에 맞춰 각 환경별 channel 분리 및 지정
  • useOTAUpdate 훅 추가: 프로덕션 환경에서 구동 시, 새로운 OTA 업데이트가 존재하면 다운로드하고 다음 앱 실행 시 자동 적용하도록 구현 (App.tsx 연동)
  • MenuScreen.tsx 수정: 설정 메뉴 내 앱 버전 표기를 정적 텍스트에서 Constants.expoConfig?.version을 사용하도록 동적 렌더링 적용

Testing

  • 앱 실행 시 Updates.checkForUpdateAsync()fetchUpdateAsync() 정상 호출 여부 확인
  • EAS Update 명령어를 통한 테스트 채널 배포 후 앱 재실행 시 새로운 버전 적용 확인
  • MenuScreen 앱 버전 탭에서 동적 버전(1.2.0)이 정상적으로 노출되는지 수동 플로우 확인

Risk / Impact

  • 영향 범위: 네이티브 앱 루트 라이프사이클(App.tsx), 전체적인 배포 및 업데이트 파이프라인.
  • 확인이 필요한 부분: 실제 iOS / Android 환경에서 네트워크 환경에 따른 백그라운드 업데이트 수신 및 다음 구동 시의 반영 동작 안정성.
  • 배포 시 유의사항: 이번 배포 이후 JS/TS 레이어의 단순 수정 및 에셋 추가는 eas update 명령어로 즉각 배포가 가능합니다. 단, 네이티브 코드 변경이나 새로운 패키지 추가 등으로 인해 fingerprint(런타임 버전)가 변경될 경우 이전처럼 스토어 심사(빌드 배포)가 필요합니다.

Screenshots / Video

- Introduced `useOTAUpdate` hook to check and apply OTA updates.
- Configured `expo-updates` in `app.config.ts` for runtime updates.
- Updated EAS build profiles to include update channels.
- Added `expo-updates` dependency and related configurations.
@sterdsterd sterdsterd requested a review from Copilot May 12, 2026 08:14
@sterdsterd sterdsterd self-assigned this May 12, 2026
@sterdsterd sterdsterd added the ✨ Feature 기능 개발 label May 12, 2026
@linear
Copy link
Copy Markdown

linear Bot commented May 12, 2026

MAT-526

@vercel
Copy link
Copy Markdown

vercel Bot commented May 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pointer-admin Ready Ready Preview, Comment May 12, 2026 8:24am

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Expo EAS Update(OTA) 도입을 위해 expo-updates를 추가하고, EAS 채널/런타임 버전 정책을 설정하며, 앱 내 버전 표시를 동적으로 바꾸는 PR입니다.

Changes:

  • expo-updates 추가 및 app.config.ts에 runtimeVersion(fingerprint) + updates 설정/플러그인 등록
  • eas.json에 빌드 프로필별 channel 분리
  • 앱 실행 시 OTA 업데이트를 백그라운드에서 확인/다운로드하는 useOTAUpdate 훅 추가 및 App.tsx 연동
  • 메뉴 화면의 앱 버전 표시를 expo-constants 기반으로 동적 렌더링

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
pnpm-lock.yaml expo-updates 및 관련 의존성 lock 반영
apps/native/src/hooks/useOTAUpdate.ts OTA 업데이트 체크/다운로드 훅 신규 추가
apps/native/src/hooks/index.ts useOTAUpdate 훅 re-export 추가
apps/native/src/features/student/menu/screens/MenuScreen.tsx 앱 버전 표기 동적 렌더링으로 변경
apps/native/package.json expo-updates 의존성 및 eas-update 스크립트 추가
apps/native/eas.json development/preview/production 채널 분리 지정
apps/native/App.tsx 앱 루트에서 useOTAUpdate() 호출 추가
apps/native/app.config.ts 버전 업(1.2.0) + fingerprint runtimeVersion + updates 설정 + 플러그인 등록
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread apps/native/src/features/student/menu/screens/MenuScreen.tsx Outdated
Comment thread apps/native/src/hooks/useOTAUpdate.ts
Comment thread apps/native/src/hooks/useOTAUpdate.ts
Comment thread apps/native/package.json Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
- Set `checkAutomatically` to `NEVER` in OTA configuration
- Use `nativeAppVersion` as the primary app version source
@sterdsterd sterdsterd merged commit 5d526e4 into develop May 12, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 기능 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants