选择退出SceneDelegate

时间:2019-12-11 12:42:54

标签: ios swift xcode appdelegate

iOS 13发行后,我选择通过正常过程退出使用新的SceneDelegate。

 - SceneDelegate.swift does no longer exist
 - There are no Scene related methods in AppDelegate
 - Application Scene Manifest is removed from .plist

这很好用,这是我自从运行以来(iOS 11.0目标,Xcode 11.2.1)的方式。

上周,我运行了一个部署目标为13.0的构建,然后又换回了11.0。

从那时起,不再调用应用程序委托方法,例如。

func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any])

唯一可以看到的是在控制台中登录

Can't end BackgroundTask: no background task exists with identifier 15 (0xf), or it may have already been ended

我已经对上述所有设置进行了三重检查,但无法像以前一样正常工作。

唯一可能不同的是,故事板现在默认为“自动”(iOS 13.0,*)演示模式,但我不确定它以前的状态。

由于自动功能仅在iOS 13以上版本中可用,因此似乎有些混乱。

有人知道吗?

关注此thread中的响应:

applicationDidBecomeActive
applicationWillEnterForeground

实际上是被调用的。

我尝试清理构建,重新启动Xcode,mac,设备,清除派生数据等。

2 个答案:

答案 0 :(得分:0)

所以,我终于找到了答案。

结果证明这是一个很好的时代

实例方法几乎匹配

func application(_ application: UIApplication, continue userActivity: NSUserActivity,
    restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool

该Xcode完全忽略了报告,并设法以某种方式在iOS 11> iOS 13> iOS 11的构建之间进行了突破。

这也很奇怪,因为我几天前用Apples和Firebase的文档对它们进行了验证,而且两者之间没有区别。

最后,现在可以了,是的。

答案 1 :(得分:0)

如果您不需要使用SceneDelegate,则在AppDelegate文件中添加以下属性。

可变窗口:UIWindow?

在didFinishLaunchingWithOptions函数上方添加此行

var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
    {
     // Override point for customization after application launch.
            return true
    }