Skip to content

chore: [SDK-5500] move demo to Capacitor 8 scene template - #72

Merged
fadi-george merged 2 commits into
mainfrom
fadi/sdk-5500
Oct 13, 2026
Merged

fadi-george merged 2 commits into
mainfrom
fadi/sdk-5500

Conversation

@fadi-george

Copy link
Copy Markdown
Contributor

Description

One Line Summary

Move the iOS demo app to the Capacitor 8 scene template, so it matches what cap add ios generates for new apps.

Details

Motivation

The demo still used the older no-scene AppDelegate with a storyboard. Capacitor 8 apps create CAPBridgeViewController in SceneDelegate, after launch, which changes when the bridge and its notification routing come up. Running the demo and the E2E suite against the current template keeps them representative of customer apps. This is part of SDK-5499 (cold-start tap coverage); the shared E2E test is SDK-5501.

Stacked on #71.

Scope

  • SceneDelegate.swift (new, copied from Capacitor 8.5.2 ios-spm-template) and registered in the Xcode project.
  • AppDelegate.swift replaced with the template version: it returns the scene configuration, and URL / user-activity handling moves to SceneDelegateProxy in SceneDelegate.
  • Info.plist gets UIApplicationSceneManifest, matching the template.
  • handleApplicationNotifications: false stays, since it is the documented OneSignal setup. Added a comment explaining that without it Capacitor's NotificationRouter becomes the notification delegate and suppresses foreground display.
  • Demo app only. No SDK, plugin, or Android changes. demo_pods and demo_cap7 are unchanged.

Testing

Unit testing

Not applicable (demo app config only).

Manual testing

iOS 26.2 simulator, Capacitor 8.5.3, SPM demo:

Affected code checklist

  • Notifications
    • Display
    • Open
    • Push Processing
    • Confirm Deliveries
  • Outcomes
  • Sessions
  • In-App Messaging
  • REST API requests
  • Public API changes

Checklist

Overview

  • I have filled out all REQUIRED sections above
  • PR does one thing
  • Any Public API changes are explained in the PR details and conform to existing APIs

Testing

  • I have included test coverage for these changes, or explained why they are not needed
  • All automated tests pass, or I explained why that is not possible
  • I have personally tested this on my device, or explained why that is not possible

Final pass

  • Code is as readable as possible.
  • I have reviewed this PR myself, ensuring it meets each checklist item

🤖 Generated with Claude Code

@fadi-george
fadi-george requested a review from a team as a code owner October 12, 2026 22:20
@fadi-george
fadi-george added this pull request to stack #73 October 12, 2026 22:20

@nan-li nan-li left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not blocking, but SceneDelegateProxy only exists from Capacitor 8.5.0 on, and the demo still allows ^8.3.0. Older demo installs keep their locked version through vp install. I hit this locally in a demo app run since I had 8.3.2 still installed, and vp run ios fails here with cannot find 'SceneDelegateProxy' in scope.

Might be worth bumping @capacitor/core, @capacitor/ios, @capacitor/android and @capacitor/cli to ^8.5.0 in examples/demo/package.json, and committing the regenerated Package.swift too.

Base automatically changed from fadi/SDK-5461-cold-start-tap-launch-url-scene-based to main October 13, 2026 17:09
Match what `cap add ios` generates for Capacitor 8 apps: SceneDelegate
creates the CAPBridgeViewController, and AppDelegate hands out the scene
configuration. Keep handleApplicationNotifications: false (documented
setup) and note why.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@fadi-george

fadi-george commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor Author

Bumped Capacitor to ^8.5.0 and committed the regenerated Package.swift

@fadi-george
fadi-george merged commit 3249b54 into main Oct 13, 2026
5 checks passed
@fadi-george
fadi-george deleted the fadi/sdk-5500 branch October 13, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants