Skip to content

v0.0.6

Choose a tag to compare

@LESANF LESANF released this 16 Sep 08:43
· 73 commits to master since this release
fa2a8c6

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').

전체 변경 내역

CHANGELOG.md ·
v0.0.5...v0.0.6