1. ホーム
  2. ios

[解決済み] SwiftUIアプリのライフサイクル iOS14 AppDelegateのコードをどこに置くか?

2023-06-25 20:54:23

質問

現在 AppDelegateSceneDelegate がSwiftUIから削除された場合、今まであったコードをどこに置けばいいかというと SceneDelegateAppDelegate というように、Firebaseのコンフィグを変更することができます。

ということで、現在このコードを私の AppDelegate :

このコードは今どこに置けばいいのでしょうか?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    
    FirebaseConfiguration.shared.setLoggerLevel(.min)
    FirebaseApp.configure()
    return true
}

どのように解決するのですか?

SwiftUIのライフサイクルの解決策を紹介します。Xcode 12b / iOS 14でテストしました。

import SwiftUI
import UIKit

// no changes in your AppDelegate class
class AppDelegate: NSObject, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        print(">> your code here !!")
        return true
    }
}

@main
struct Testing_SwiftUI2App: App {

    // inject into SwiftUI life-cycle via adaptor !!!
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}