v0.0.6
Warning
Still a PoC. 0.0.x promises no API or structural stability.
Expo shipped the SDK 57 scene lifecycle one day after v0.0.4 patched it in by hand. The patch and the hand-written plugin are both gone.
The local workaround is replaced by one line
expo@57.0.23 |
the runtime classes (#50191) |
expo-build-properties@57.0.19 |
the ios.enableSceneSupport switch (#50205) |
ios: { useFrameworks: 'static', enableSceneSupport: true },Deleted: patches/expo@57.0.22.patch and plugins/with-ios-scene.ts.
It is opt-in on purpose. Flipping the default mid-SDK would rewrite the AppDelegate of every existing SDK 57 app, so prebuild still emits the legacy lifecycle unless the flag is set — confirmed by pulling the flag and prebuilding. The first-party version is also cleaner: the generated project points at Expo's own EXExpoAppSceneDelegate instead of a SceneDelegate class written into each app.
Remove the line at SDK 58, where it becomes the default; prebuild warns if it is still set.
Verified
prebuild Info.plist → EXExpoAppSceneDelegate · UIWindow(frame: absent
xcodebuild ** BUILD SUCCEEDED ** 0 errors
built app Info.plist names EXExpoAppSceneDelegate
expo-doctor 18/18 · check-all 64 tests
Remaining custom plugins stay
Checked against the SDK 57 config reference: MainActivity configChanges/resizeableActivity, a separate Android display name, release signing and $RNFirebaseDisableSPM for push-off builds have no first-party equivalent.
Also clears two lint violations app.config.ts had been carrying — a dynamic process.env[key] Metro cannot inline, and a stale require('node:fs').
Warning
여전히 PoC 입니다. 0.0.x 는 API·구조 안정성을 약속하지 않습니다.
v0.0.4 가 손으로 패치해 넣은 iOS 27 UIScene 을 하루 뒤 Expo 가 공식으로 냈습니다. 패치와 자체 플러그인을 둘 다 지웠습니다.
임시 조치가 한 줄로 바뀌었습니다
expo@57.0.23 |
런타임 클래스 (#50191) |
expo-build-properties@57.0.19 |
ios.enableSceneSupport 스위치 (#50205) |
ios: { useFrameworks: 'static', enableSceneSupport: true },삭제: patches/expo@57.0.22.patch · plugins/with-ios-scene.ts.
일부러 opt-in 입니다. SDK 중간에 기본값을 바꾸면 기존 SDK 57 앱의 AppDelegate 가 전부 다시 쓰이기 때문입니다 — 스위치를 빼고 prebuild 해서 확인했습니다. 공식 쪽이 더 낫습니다: 앱마다 SceneDelegate 클래스를 써넣지 않고 Expo 의 EXExpoAppSceneDelegate 를 직접 가리킵니다.
SDK 58 에서는 이 줄을 지웁니다 — 기본이 되고, 남겨두면 prebuild 가 경고합니다.
검증
prebuild Info.plist → EXExpoAppSceneDelegate · UIWindow(frame: 없음
xcodebuild ** BUILD SUCCEEDED ** error 0
빌드된 앱 Info.plist 가 EXExpoAppSceneDelegate 를 가리킴
expo-doctor 18/18 · check-all 64 테스트
남은 자체 플러그인은 유지합니다
SDK 57 config 레퍼런스와 대조했습니다 — MainActivity configChanges·resizeableActivity, Android 표시명 분리, release 서명, 푸시 off 빌드의 $RNFirebaseDisableSPM 은 공식 대체가 없습니다.
app.config.ts 가 들고 있던 lint 위반 2건도 정리했습니다 — Metro 가 인라인 못 하는 process.env[key] 동적 접근과 낡은 require('node:fs').