From 3a21b710d73b1011a6cdf8cbde6b41e7763ade3d Mon Sep 17 00:00:00 2001 From: Matthew Raymer Date: Tue, 11 Nov 2025 21:18:54 -0800 Subject: [PATCH] test(ios): add logging to SceneDelegate to verify initialization Added comprehensive logging to SceneDelegate: SceneDelegate Logging: - Logs when willConnectTo is called - Logs window creation - Logs ViewController instantiation - Logs window setup completion - Uses os_log, print, and NSLog for maximum visibility Debugging: - Verifies SceneDelegate is being called - Confirms ViewController is being created - Checks window setup process Fixes: - Initialization tracking: can see if SceneDelegate runs - ViewController creation: confirms ViewController is instantiated - Window setup: verifies window is configured Result: Can now see the full initialization chain from SceneDelegate to ViewController --- .../ios-test-app/App/App/SceneDelegate.swift | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/test-apps/ios-test-app/App/App/SceneDelegate.swift b/test-apps/ios-test-app/App/App/SceneDelegate.swift index 4e012a6..d33a6d3 100644 --- a/test-apps/ios-test-app/App/App/SceneDelegate.swift +++ b/test-apps/ios-test-app/App/App/SceneDelegate.swift @@ -11,6 +11,7 @@ // import UIKit +import os.log /** * Scene delegate for iOS 13+ scene-based lifecycle @@ -20,6 +21,7 @@ import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? + private let logger = OSLog(subsystem: "com.timesafari.dailynotification", category: "SceneDelegate") func scene( _ scene: UIScene, @@ -27,15 +29,41 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { options connectionOptions: UIScene.ConnectionOptions ) { // Called when a new scene session is being created - guard let windowScene = (scene as? UIWindowScene) else { return } + os_log("🔍 SceneDelegate: willConnectTo called", log: logger, type: .info) + print("🔍 SceneDelegate: willConnectTo called") + NSLog("🔍 SceneDelegate: willConnectTo called") + + guard let windowScene = (scene as? UIWindowScene) else { + os_log("❌ SceneDelegate: Failed to get windowScene", log: logger, type: .error) + print("❌ SceneDelegate: Failed to get windowScene") + NSLog("❌ SceneDelegate: Failed to get windowScene") + return + } + + os_log("✅ SceneDelegate: Creating window and ViewController", log: logger, type: .info) + print("✅ SceneDelegate: Creating window and ViewController") + NSLog("✅ SceneDelegate: Creating window and ViewController") let window = UIWindow(windowScene: windowScene) self.window = window // Create and configure the view controller + os_log("🔍 SceneDelegate: Instantiating ViewController", log: logger, type: .info) + print("🔍 SceneDelegate: Instantiating ViewController") + NSLog("🔍 SceneDelegate: Instantiating ViewController") + let viewController = ViewController() + + os_log("✅ SceneDelegate: ViewController created, setting as root", log: logger, type: .info) + print("✅ SceneDelegate: ViewController created, setting as root") + NSLog("✅ SceneDelegate: ViewController created, setting as root") + window.rootViewController = viewController window.makeKeyAndVisible() + + os_log("✅ SceneDelegate: Window made key and visible", log: logger, type: .info) + print("✅ SceneDelegate: Window made key and visible") + NSLog("✅ SceneDelegate: Window made key and visible") } func sceneDidDisconnect(_ scene: UIScene) {