Skip to content

iOS 27 SDK 빌드 대비 UIScene 생명주기 전환 #749

Open

Description

@ychany

왜

Xcode 27.1 로컬 빌드 실행 즉시 종료

  • iPhone Duo 시뮬레이터(iOS 27.1)에서 앱 실행 직후 종료
  • 크래시: EXC_BREAKPOINT · UIApplicationEvaluateRuntimeIssueForNoSceneLifecycleAdoption
  • 원인: 앱이 UIScene 생명주기를 쓰지 않음
    • AppDelegate 만 있음. UIApplicationSceneManifest · SceneDelegate 없음
    • iOS 27 SDK 로 빌드한 앱은 UIScene 사용 필수
  • 참조: Apple TN3187 (Migrating to the UIKit scene-based life cycle)

빌드 환경별 결과

빌드 Xcode · SDK 결과
로컬 빌드 Xcode 27.1 · iOS 27.1 실행 직후 종료
EAS 시뮬레이터 빌드 (development) Xcode 26.0 · iOS 26.0 정상 실행
  • 현재 스토어 앱은 영향 없음
    • 조건: eas.json 에 빌드 이미지 지정 없음. Expo SDK 54 기본 이미지(Xcode 26 계열) 사용

대응이 필요해지는 시점

시점 영향
Expo SDK 업그레이드 새 SDK 기본 이미지가 Xcode 27 이면 새 빌드 전부 실행 불가
Apple 의 최신 SDK 제출 의무화 iOS 27 SDK 빌드만 받으면 스토어 업데이트 불가
팀원 로컬 iOS 빌드 Xcode 27 사용 시 지금도 실행 불가
  • 위험: Apple 의무화 날짜 확인 전. 매년 봄 적용이 관례

무엇을

대응 방식 조사

  • Expo SDK 54 · React Native 0.81.5 의 UIScene 지원 여부 확인
  • UIScene 을 기본 지원하는 Expo SDK 버전 확인
    • 대안: Expo SDK 업그레이드로 해결
    • 대안: 현재 SDK 에서 config plugin 으로 SceneDelegate 추가

이관 대상

  • ios/ 는 git 에 없음(CNG). 네이티브 변경은 config plugin 으로만 반영
대상 현재 처리 위치 이관 위치
URL scheme 진입 (piki://) AppDelegate.application(_:open:options:) scene(_:openURLContexts:)
카카오 로그인 콜백 withKakaoLoginConfig.js 가 AppDelegate openURL 에 주입 scene URL 처리
Universal Link (piki.day) application(_:continue:restorationHandler:) scene(_:continue:)
콜드 스타트 링크 launchOptions scene(_:willConnectTo:options:) 의 connectionOptions
공유하기 진입 · 푸시 알림 탭 expo-share-intent · expo-notifications 각 라이브러리 지원 여부 확인

함께 정리

  • Xcode 27 의 Pods 최소 iOS 버전 오류
    • Alamofire · Sentry 등 리소스 타깃 최소 버전이 iOS 9-13
    • Xcode 27 은 iOS 15 미만 대상 빌드 거부
    • 로컬 확인 때 IPHONEOS_DEPLOYMENT_TARGET=16.4 덮어쓰기로 우회
    • Podfile post_install 에서 최소 버전 맞춤 검토
  • 카카오 SDK 초기화 전 URL 처리 시 종료
    • JS(app/_layout.tsx)에서 카카오 SDK 초기화
    • 네이티브 openURL 이 초기화 여부 확인 없이 AuthApi.isKakaoTalkLoginUrl 호출
    • 결과: 개발 빌드에서 piki:// 진입 시 KakaoSDK.redirectUri() 에서 종료 재현
    • 위험: 운영 빌드의 콜드 스타트 재현 여부 확인 전
    • scene 이관 때 같은 위치를 고쳐 함께 처리

확인

  • Xcode 27 로컬 빌드로 iOS 27 시뮬레이터 실행
  • EAS 빌드로 iOS 26 기기 실행
  • piki:// 콜드 스타트 · 실행 중 진입
  • 카카오 · Google · Apple 로그인
  • 공유하기로 담기
  • 푸시 알림 탭 진입
  • Universal Link 진입

Activity

  1. self-assigned this
    on Oct 20, 2026
  2. added theissue type on Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

APPGood for newcomerschore

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions