Solución:
Hay tres enfoques para inicializar marcos de terceros en el nuevo ciclo de vida de SwiftUI:
Usando el modelo de ciclo de vida antiguo
Todavía puede usar el modelo de ciclo de vida anterior:
Opción 1: utilice el Delegado de la aplicación UIKit ciclo vital
Al crear un nuevo proyecto SwiftUI, puede elegir el modelo de ciclo de vida anterior. Esto creará un AppDelegate
y un SceneDelegate
como antes. No es tan elegante como usar SwiftUI hasta el final, lo admito, pero definitivamente es la forma más fácil y directa.
Usando el nuevo modelo de ciclo de vida
Si desea utilizar el nuevo modelo de ciclo de vida, utilice uno de los siguientes enfoques.
Opción 2: utilice el App
inicializador
Puede anular el inicializador predeterminado de su App
clase, así:
import SwiftUI
import Firebase
@main
struct SO62626652_InitialiserApp: App {
init() {
FirebaseApp.configure()
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Opción 3: utilizar @ UIApplicationDelegateAdaptor
En ti App
clase, defina una propiedad que tenga una referencia a su AppDelegate
y deje que SwiftUI inyecte el AppDelegate
utilizando el @ UIApplicationDelegateAdaptor
envoltorio de propiedad, como este:
import SwiftUI
import Firebase
@main
struct SO62626652_AppDelegateAdaptorApp: App {
@UIApplicationDelegateAdaptor private var appDelegate: AppDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
FirebaseApp.configure()
return true
}
}