关于xcode7编译旧项目崩溃-[UIApplication _runWithMainScene:transitionContext:completion:]

崩溃原因

crash:
Assertion failure in 
-[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-

 (
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', `enter code here`reason: 'Application windows are expected to have a root
view controller at the end of application launch'
*** First throw call stack:
 

 尝试解决方案一:

//  *************代码做调整,加入到下一个loop周期中,再次运行代码,程序正常。******//
 
- (void)applicationDidBecomeActive:(UIApplication *)application {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
   
    //crash in ios9
    _testWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    _testWindow.hidden = NO;
   
    //ok
    //    dispatch_async(dispatch_get_main_queue(), ^{
    //        _testWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    //        _testWindow.hidden = NO;
    //    });
   
   
}
Or
  尝试解决方案二:
   Xcode7 需要所有的窗口都必须有根控制器
 
XCODE 7 requires that all the Windows must have a rootViewController You can use easy:
 
UIViewController* vc = [[UIViewController alloc]initWithNibName:nil bundle:nil];
 
 self.window.rootViewController = vc; 
 
It's working good if you need to use only UIWindow (for easy examples from any Tutorials - before Xcode 7)!
原文地址:https://www.cnblogs.com/mysticCoder/p/5072589.html