[SwiftUI] SceneDelegate를 지우고 ApplicationDelegate로 만드십시오.
이것은 무엇입니까?
iOS 13 환경에서 ReplayKit & UIScene의 궁합이 나쁘기 때문에, 울고 울고 있는 UISceneDelegate를 지워 UIApplicationDelegate만 했을 때의 메모입니다.
ReplayKit & UIScene: Assertion when calling RPSystemBroadcastPickerView · Issue #438 · twilio/video-quickstart-ios
If you must use RPSystemBroadcastPickerView then you should consider not using UIScene, and going back to UIApplicationDelegate.
했던 일
SceneDelegate 버서리 삭제
Info.plist에서 UIApplicationSceneManifest
를 버서리 제거합니다.
그 후, SceneDelegate.swift
도 불필요하게 되므로 삭제합니다. (SceneDelegate에서 했던 적이 있다면 AppDelegate로 마이그레이션해야 함)
AppDelegate에서 UIHostingController를 통해 SwiftUI의 View 열기
AppDelegate.swift를 다음과 같이 다시 작성합니다.
import UIKit
import SwiftUI
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
window!.rootViewController = UIHostingController(rootView: ContentView)
window!.makeKeyAndVisible()
return true
}
}
이 때, func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
와 같은 UISceneSession Lifecycle 가 남아 있으면 잘 앱이 움직이지 않기 때문에 주의입니다.
이제 일단 앱이 시작되지만 동작을 보장하지는 않습니다. 어디까지나 자기 책임으로!
Reference
이 문제에 관하여([SwiftUI] SceneDelegate를 지우고 ApplicationDelegate로 만드십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/koogawa/items/3472398afd4d809148b0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
SceneDelegate 버서리 삭제
Info.plist에서
UIApplicationSceneManifest
를 버서리 제거합니다.그 후,
SceneDelegate.swift
도 불필요하게 되므로 삭제합니다. (SceneDelegate에서 했던 적이 있다면 AppDelegate로 마이그레이션해야 함)AppDelegate에서 UIHostingController를 통해 SwiftUI의 View 열기
AppDelegate.swift를 다음과 같이 다시 작성합니다.
import UIKit
import SwiftUI
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
window!.rootViewController = UIHostingController(rootView: ContentView)
window!.makeKeyAndVisible()
return true
}
}
이 때,
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
와 같은 UISceneSession Lifecycle 가 남아 있으면 잘 앱이 움직이지 않기 때문에 주의입니다.이제 일단 앱이 시작되지만 동작을 보장하지는 않습니다. 어디까지나 자기 책임으로!
Reference
이 문제에 관하여([SwiftUI] SceneDelegate를 지우고 ApplicationDelegate로 만드십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koogawa/items/3472398afd4d809148b0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)