几天以来,我在 Xcode 11 中调试我们的应用程序时遇到了非常奇怪的崩溃。
情况
我们有一款专为 iOS 11 及更高版本打造的应用。但自 Xcode 11 以来,该应用程序在设置 Root View Controller 时崩溃了。但是,当我在崩溃后打开该应用程序时,该应用程序确实可以运行,因此它似乎与设置调试 session 有关。
我尝试构建的设备是 iPhone Xs,iOS 13.1.2。我还尝试了另一台 13.1 的设备,但那里遇到了同样的问题。
但是,当我附加一个在 12.x.x 上运行的设备时,它可以正常工作。
奇怪的是,昨天我能够在模拟器上运行。但从今天开始,同样的崩溃发生在设备 (iPhone Xs) 上。
也许还有重要的一提:我的同事在同一个项目中工作,没有同样的问题。 (!!)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Show app loading view controller
self.window = [[RMWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = [[AppLoadingViewController alloc] init]; // Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
[self.window makeKeyAndVisible];
我尝试了以下方法:
- 将 AppDelegate.h/m 替换为 AppDelegate.swift。
- 将所有项目设置更新为 Xcode 11 的最新设置。
- 尝试了普通的
UIViewController()
而不是AppLoadingViewController()
。 - 清理派生文件夹(硬核风格)
- 清理所有 Xcode 缓存
- 重新安装 Xcode
- 重启 Mac + iPhone
- 从 Xcode 首选项中删除了 iOS DeviceSupport 文件夹,通过“设备和模拟器”重新连接设备。
- 创建了一个新项目并在 iPhone 上运行,确实有效。
这是一个同时包含 Objective-C 和 Swift 代码的应用程序,我们已经拥有它多年了。但这是第一次发生这样的事情。
有没有人知道这可能是什么?
最佳答案
let homeVC = UIStoryboard(name:"Main", bundle: nil).instantiateViewController(withIdentifier: "SigninViewController") as! SigninViewController
let navC = UINavigationController(rootViewController: homeVC)
navC.navigationBar.isHidden = true
UIApplication.shared.windows.first?.rootViewController = navC
UIApplication.shared.windows.first?.makeKeyAndVisible()
试试这个在我的情况下工作正常..
关于objective-c - 崩溃 Xcode 11,iOS13 设置 Root View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58218444/