Repository navigation
Conversation
Make the Expo sample run under the iOS UIScene lifecycle with Expo's own
EXExpoAppSceneDelegate (a Swift UIWindowSceneDelegate) via a new
withIosSceneLifecycle config plugin. This is the lifecycle Apple/Expo are
pushing every app toward ("Required by iOS 27"), so running the sample this
way keeps the SDK exercised under it.
Expo 57 ships ExpoAppSceneDelegate but does not wire it up during prebuild
yet, so the plugin adds the UIApplicationSceneManifest and adjusts the
generated AppDelegate to defer the window / React Native start to the scene
delegate.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Semver Impact of This PR⚪ None (no version bump detected) 📋 Changelog PreviewThis is how your changes will appear in the changelog.
🤖 This preview updates automatically when you update the PR. |
alwx
left a comment
There was a problem hiding this comment.
Correct me if I'm wrong but does this PR actially guard against getsentry/sentry-cocoa#9281?
That bug occurs only at runtime, the app freezes in the crash handler when attachScreenshot is true and the app crashes through std::terminate or abort(). The Expo CI workflow runs only expo prebuild and xcodebuild, and the E2E tests do not run the Expo sample. Which means CI proves only that the scene setup compiles.
In addition, the fix is already in sentry-cocoa 9.30.1, right?
@alwx The claim of guarding in the description is indeed not fully true 👍
Exactly and adds the scene setup in the sample. I've fully tested this with an extra CI check in #6839 while developing the Cocoa fix but thought that it might be too much add a full CI check that would add extra CI delay. I guess we have three options forward:
|
📢 Type of change
📜 Description
Makes the Expo sample adopt the iOS UIScene lifecycle with Expo's own
EXExpoAppSceneDelegate(a SwiftUIWindowSceneDelegate), via a newsamples/expo/plugins/withIosSceneLifecycle.jsconfig plugin.Both guards throw a clear error if the Expo template drifts, so prebuild fails loudly rather than silently producing a non-scene app.
💡 Motivation and Context
This is added as a guard for issues similar to getsentry/sentry-cocoa#9281.
Note that a full check approach was initially tested with #6839 along with the cococa fix getsentry/sentry-cocoa#9282 but I've decided to go with the lighter approach that won't impact the CI load much.
💚 How did you test it?
📝 Checklist
sendDefaultPIIis enabled.🔮 Next steps