Xcode 选择退出 SceneDelegate 后不调用应用程序委托
Xcode not calling application delegate after opting out of SceneDelegate
当iOS13发布时,我通过正常程序选择不使用新的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
我已经三次检查了上面的所有设置,但我无法像以前那样工作。
唯一可能不同的是故事板现在默认为 'automatic' (iOS 13.0, *) 演示模式,但我不确定以前是怎样的。
由于自动功能只能从 iOS 13+ 开始使用,所以似乎有些问题。
有人知道吗?
跟进此 thread 中的回复:
applicationDidBecomeActive
applicationWillEnterForeground
etc 实际上被调用了。
我已经尝试清理构建、重新启动 Xcode、mac、设备、清除派生数据等
所以,我终于找到了答案。
原来是个好东西
实例方法几乎匹配
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 完全忽略了报告,并以某种方式设法在建筑之间闯入 for iOS 11 > iOS 13 > iOS 11.
这也很奇怪,因为我前几天用文档验证了它们,Apples和Firebase,它们之间没有区别。
现在终于可以用了,耶。
如果您不需要使用 SceneDelegate,请在 AppDelegate 文件中添加 属性。
var window: UIWindow?
在 didFinishLaunchingWithOptions 函数上方添加这一行
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
{
// Override point for customization after application launch.
return true
}
当iOS13发布时,我通过正常程序选择不使用新的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
我已经三次检查了上面的所有设置,但我无法像以前那样工作。
唯一可能不同的是故事板现在默认为 'automatic' (iOS 13.0, *) 演示模式,但我不确定以前是怎样的。
由于自动功能只能从 iOS 13+ 开始使用,所以似乎有些问题。
有人知道吗?
跟进此 thread 中的回复:
applicationDidBecomeActive
applicationWillEnterForeground
etc 实际上被调用了。
我已经尝试清理构建、重新启动 Xcode、mac、设备、清除派生数据等
所以,我终于找到了答案。
原来是个好东西
实例方法几乎匹配
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 完全忽略了报告,并以某种方式设法在建筑之间闯入 for iOS 11 > iOS 13 > iOS 11.
这也很奇怪,因为我前几天用文档验证了它们,Apples和Firebase,它们之间没有区别。
现在终于可以用了,耶。
如果您不需要使用 SceneDelegate,请在 AppDelegate 文件中添加 属性。
var window: UIWindow?
在 didFinishLaunchingWithOptions 函数上方添加这一行
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
{
// Override point for customization after application launch.
return true
}