diff --git a/Sources/SkipBuild/SkipProject.swift b/Sources/SkipBuild/SkipProject.swift index b04d40c8..cd36f6b9 100644 --- a/Sources/SkipBuild/SkipProject.swift +++ b/Sources/SkipBuild/SkipProject.swift @@ -2494,6 +2494,7 @@ private typealias AppDelegate = \(primaryModuleName)AppDelegate @main struct AppMain: App { @AppDelegateAdaptor(AppMainDelegate.self) var appDelegate @Environment(\\.scenePhase) private var scenePhase + @State private var started = false var body: some Scene { WindowGroup { @@ -2502,10 +2503,15 @@ private typealias AppDelegate = \(primaryModuleName)AppDelegate .onChange(of: scenePhase) { oldPhase, newPhase in switch newPhase { case .active: + if !started { + started = true + AppDelegate.shared.onStart() + } AppDelegate.shared.onResume() case .inactive: AppDelegate.shared.onPause() case .background: + started = false AppDelegate.shared.onStop() @unknown default: print("unknown app phase: \\(newPhase)") @@ -2623,6 +2629,10 @@ let logger: Logger = Logger(subsystem: "\(appid)", category: "\(primaryModuleNam logger.debug("onPause") } + \(skipBridge)public func onStart() { + logger.debug("onStart") + } + \(skipBridge)public func onStop() { logger.debug("onStop") } @@ -3800,8 +3810,8 @@ open class MainActivity: AppCompatActivity { } override fun onStart() { - logger.info("onStart") super.onStart() + AppDelegate.shared.onStart() } override fun onResume() {