chore(example): adopt UIScene lifecycle for Xcode 27 and update Podfile.lock - #118
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Important Review skippedReview was skipped as selected files did not have any reviewable changes. ⛔ Files ignored due to path filters (2)
⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (2)
You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (5)
Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 1 remain after this review. 📝 WalkthroughWalkthroughThe example iOS app now starts React Native from a connected window scene. The project includes the scene delegate and scene manifest configuration, and its setup guidance documents Bundler-based Ruby and CocoaPods installation. ChangesiOS example startup
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant SceneDelegate
participant UIWindowScene
participant AppDelegate
participant ReactNativeFactory
SceneDelegate->>UIWindowScene: Receive connected scene
SceneDelegate->>AppDelegate: Obtain app delegate and factory
SceneDelegate->>AppDelegate: Assign created window
SceneDelegate->>ReactNativeFactory: Start with module name OrientationDirectorExample
Merge Risk: ⚪ Minimal · up to The example starts React Native when its window scene connects, and its Bundler setup uses matching CocoaPods pins. No supported launch behavior is lost, and no actionable merge risk remains beyond normal validation. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change is confined to the example app. The inspected startup path does not show a new exposed endpoint or bypassed security control, but behavior after scene disconnection or reconnection remains unconfirmed. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 2 files. (3 skipped: 3 unsupported.) ✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Xcode 27 / iOS 27 simulator crash on launch without a scene-based lifecycle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bump the bundled CocoaPods to 1.15.2, the latest version allowed by the React Native template Gemfile (xcodeproj < 1.26.0), and regenerate Podfile.lock with `bundle exec pod install`, as CI does. Also add the missing nkf entry to Gemfile.lock. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
df7731e to
4c6a29f
Compare
Why
pod installfailed with stale prebuilt pods (React-VFS.yamlnot found).What changed
Example app and contributor docs only, no library changes:
SceneDelegate.swift, which creates the window and starts React Native, plus theUIApplicationSceneManifestinInfo.plist(single scene).AppDelegateno longer creates the window.windowis kept as a weak reference because React Native still readsdelegate.window.application(_:supportedInterfaceOrientationsFor:)is unchanged: it's deprecated in iOS 27 but still called for scene-based apps.Podfile.lockfor react-native 0.86.0.example/Gemfile.lockand generatedPodfile.lockwithbundle exec pod install, as CI already does. 1.15.2 is the latest version allowed by the React Native templateGemfile(xcodeproj < 1.26.0; CocoaPods 1.16 needsxcodeproj >= 1.27). The previousPodfile.lockonmainsaidCOCOAPODS: 1.16.2because it was generated with a globalpod, outside theGemfileconstraints.AGENTS.md: documented the Bundler-only CocoaPods workflow.This is the same approach as lodev09/react-native-true-sheet#843.
Testing
On this branch the example builds with Xcode 27.2. The same scene lifecycle was exercised at runtime on the iPhone Duo (iOS 27.1), iPhone 16 (iOS 18.5) and iPhone 17 (iOS 26.5) simulators while working on #116.
Needed by #116, which should be merged after this one.
🤖 Generated with Claude Code
Summary by CodeRabbit