Skip to content

fix(mobile): Xcode 27(iOS 27 SDK) 빌드 앱 실행 즉시 종료 수정 — UIScene 생명주기 채택 - #147

Merged
SwimmingRiver merged 1 commit into
developfrom
chore/mobile-expo-ios27
Oct 20, 2026
Merged

SwimmingRiver merged 1 commit into
developfrom
chore/mobile-expo-ios27

Conversation

@SwimmingRiver

Copy link
Copy Markdown
Owner

Summary

  • Xcode 27.1(iOS 27 SDK)로 빌드한 dev client가 실행 직후 종료되던 문제 수정. 로그: UIScene life cycle is required for apps built with this SDK. 기존 SDK 57 템플릿의 AppDelegate 방식을 iOS 27이 거부함 — 스토어 제출 빌드(Task 8)에도 똑같이 걸리는 문제
  • Expo 공식 가이드(expo.fyi/ios-scene-lifecycle)의 SDK 57 경로 적용
    • expo ~57.0.15 → ~57.0.30 (enableSceneSupport는 57.0.23 이상 필수), expo-dev-client ~57.0.20, expo-notifications ~57.0.23, react-native 0.86.3, jest-expo ~57.0.6 (lockfile의 @react-native/jest-preset도 0.86.3)
    • expo-build-properties ~57.0.22 추가 + ios.enableSceneSupport: true → prebuild가 AppDelegate를 ExpoReactNativeFactoryProvider로 바꾸고 Info.plist scene 설정이 EXExpoAppSceneDelegate를 가리키게 함
  • ios/는 gitignore(CNG)라 설정 플러그인으로만 반영 — 로컬 prebuild와 EAS 빌드 양쪽에서 재현됨
  • expo install --fix가 권하는 async-storage 3.1.1 → 2.2.0 다운그레이드는 이번 문제와 무관해서 적용하지 않음
  • SDK 58로 올리면 scene 방식이 템플릿 기본값이 되므로 이 옵션은 그때 제거 대상

Test plan

  • npx jest 185/185 통과 (업그레이드 직후 첫 실행에서만 4개 스위트 실패, 이후 연속 3회 통과)
  • npx tsc --noEmit 통과
  • expo prebuild --platform ios --clean 결과 확인: AppDelegate ExpoReactNativeFactoryProvider 채택, startReactNative 블록 제거, Info.plist UIApplicationSceneManifest → EXExpoAppSceneDelegate
  • iPhone 18 Pro(iOS 27.0) 시뮬레이터: 수정 전에는 실행 즉시 종료, 수정 후 정상 실행 + 로그인·로그아웃 확인
  • EAS 빌드에서도 같은 결과인지 확인 (Task 8 진행 시)

🤖 Generated with Claude Code

iOS 27 SDK는 scene 기반 생명주기를 채택하지 않은 앱을 실행 시 거부한다.
expo 57.0.30(57.0.23 이상 필수)으로 올리고 expo-build-properties의
ios.enableSceneSupport로 prebuild가 AppDelegate·Info.plist를 전환하게 한다.

- expo ~57.0.30, expo-dev-client ~57.0.20, expo-notifications ~57.0.23
- react-native 0.86.3, jest-expo ~57.0.6
- expo-build-properties ~57.0.22 추가
- async-storage는 expo install --fix의 2.2.0 다운그레이드 권고를 따르지 않고 3.1.1 유지

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SwimmingRiver
SwimmingRiver merged commit 3abb305 into develop Oct 20, 2026
11 checks passed
@SwimmingRiver
SwimmingRiver deleted the chore/mobile-expo-ios27 branch October 20, 2026 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant