Xcode SceneDelegate を削除する - shirajira/family-account-ios GitHub Wiki

Xcode SceneDelegate を削除する

操作手順

1. AppDelegate.swift

AppDelegate.swift に記述されている以下メソッドを削除する。

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    // 中略

    // MARK: UISceneSession Lifecycle

    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        // Called when a new scene session is being created.
        // Use this method to select a configuration to create the new scene with.
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }

    func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
        // Called when the user discards a scene session.
        // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
        // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
    }
}

同じく AppDelegate.swift のプロパティに var window: UIWindow? を追加する。
最終的には以下のような実装になる。

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        return true
    }

}

2. Info.plist

Application Scene Manifest 以下を削除する。

具体的には,以下を削除。

<key>UIApplicationSceneManifest</key>
<dict>
    <key>UIApplicationSupportsMultipleScenes</key>
    <false/>
    <key>UISceneConfigurations</key>
    <dict>
        <key>UIWindowSceneSessionRoleApplication</key>
        <array>
            <dict>
                <key>UISceneConfigurationName</key>
                <string>Default Configuration</string>
                <key>UISceneDelegateClassName</key>
                <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
                <key>UISceneStoryboardFile</key>
                <string>Main</string>
            </dict>
        </array>
    </dict>
</dict>

3. SceneDelegate.swift

ファイルを削除する。

ビルドして,問題なく立ち上がることを確認してください。


参考:
iOS13でSceneDelegateを使わないでアプリを作る - Qiita

⚠️ **GitHub.com Fallback** ⚠️