v0.0.4
Warning
여전히 PoC 입니다. 0.0.x 는 API·구조 안정성을 약속하지 않습니다.
iOS 27 SDK 에서 앱이 실행되지 않던 것을 고쳤습니다. Xcode 27 을 쓰는 사람에게는 이게
전부입니다 — 그 전 버전은 빌드는 되지만 실행이 안 됩니다.
iOS 27 SDK — UIScene 생명주기
Apple 이 UIScene 채택을 필수로 만들었습니다. SDK 57 템플릿은 AppDelegate 가 window 를
만들기 때문에 빌드는 성공하고 실행에서 죽습니다.
Application failed to launch: UIScene life cycle is required for apps built with this SDK.
빌드가 통과한다는 게 함정입니다. v0.0.3 에서 Xcode 27 을 확인했다고 적었는데, 그때 본 건
DeviceHub 대체와 컴파일뿐이었고 둘 다 이 문제를 건드리지 않습니다.
런타임 클래스는 upstream expo/expo#50026 에서
그대로 가져왔습니다. 그게 공식 백포트 PR 이고 sdk-57 을 타깃하며 아직 열려
있습니다. 커밋 008a21874e177800f983be16f5c14315e96f33fd 기준이고 손으로 고친 것은
없습니다.
patches/expo@57.0.22.patch |
ExpoAppSceneDelegate · ExpoReactNativeFactoryProvider · SceneEventForwarder |
plugins/with-ios-scene.ts |
Info.plist scene manifest · AppDelegate 에서 window 생성 제거 · SceneDelegate 선언 |
플러그인은 앵커를 못 찾으면 throw 합니다. 조용히 빠지면 실행에서야 드러나고, 그게 가장
찾기 어려운 자리입니다.
SDK 54 에서는 네 패키지를 패치해야 했지만 57 은 하나로 끝납니다 — SceneGeometry 가
expo-modules-core 57 에 이미 있고, @expo/cli 57.0.24 에 DeviceHub fallback 이 들어
있고(#46757), Pod 배포타깃 상향도 Expo 가
prebuild 에서 직접 합니다.
patches/README.md
에 출처와 제거 조건을 적어 뒀습니다 — #50026 이 57.0.x 에 들어오면 패치와 플러그인을
같이 지웁니다.
앱 아이콘 배지 위치
app-icon-badge 는 1024×1024 고정 오버레이를 (0,0) 에 합성합니다. 아이콘이 1254px
이라 배너가 폭의 81.7% 만 덮고 하단이 아니라 y 67~82% 에 앉아 아이콘 본체를 가로질렀습니다.
| 전 | 후 | |
|---|---|---|
| 배너 | 폭 81.7%, y 67~82% | 전체 폭, 하단 |
| 리본 | 모서리가 일찍 잘림 | 우상단 모서리에 붙음 |
icon.png·adaptive-icon.png 를 1024×1024 로 맞췄습니다 — Apple 이 요구하는 크기이기도
합니다. sips 로 리사이즈했고 손으로 만지지 않았습니다.
검증
prebuild Info.plist scene manifest · AppDelegate 수정 · SceneDelegate 생성 확인
pod install 28 pods
xcodebuild ** BUILD SUCCEEDED ** error 0 (Swift 3개 컴파일 로그 확인)
expo-doctor 18/18
check-all lint · tsc · 64 테스트
아직 검증되지 않은 것
런타임입니다. 그리고 이번에는 그게 더 중요합니다 — scene 생명주기에서는 링크가
AppDelegate 로 오지 않습니다. SceneEventForwarder 가 넘기므로 콜드
Linking.getInitialURL() 보존이 첫 실행에서 확인할 항목입니다. 이 템플릿의 핵심이 딥링크
큐라 다른 앱보다 영향이 큽니다.
그 외: splash → tabs 이음새 · InsetView 탭 덜컹거림 · 푸시 3경로 · iOS NSE 미포함.
호환성
| Expo SDK | 57 (~57.0.22, expo 패치 적용) |
| React Native | 0.86.3 |
| Xcode | 27 확인 (26.4+ 요구) |
| 패키지 매니저 | pnpm 11.10.0 |
시작하기
npx create-lesa-app my-app