[feat/MAT-526] EAS Update를 통한 OTA 업데이트 적용 및 동적 버전 표시#329
Merged
Conversation
- 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.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
There was a problem hiding this comment.
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.
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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()정상 호출 여부 확인MenuScreen앱 버전 탭에서 동적 버전(1.2.0)이 정상적으로 노출되는지 수동 플로우 확인Risk / Impact
App.tsx), 전체적인 배포 및 업데이트 파이프라인.eas update명령어로 즉각 배포가 가능합니다. 단, 네이티브 코드 변경이나 새로운 패키지 추가 등으로 인해 fingerprint(런타임 버전)가 변경될 경우 이전처럼 스토어 심사(빌드 배포)가 필요합니다.Screenshots / Video