升级xcode7 遇到的问题 Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:]

简介: <p><span style="font-size:18px"><strong><br> 用了xcode7以后遇到的问题,有网上找的解决方案,也有自己研究的,希望能帮助大家!</strong></span></p> <p><br></p> <p><span style="font-size:18px"><strong><strong>Assertion failure in -[UI


用了xcode7以后遇到的问题,有网上找的解决方案,也有自己研究的,希望能帮助大家!


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

这个错误让我一度头疼不已,在网上找了很多方案都没解决,后来自己慢慢的摸索出来的,先给大家分享我自己的解决方案。

解决方案一、不能在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法里面添加引导页代码,(本人就属于这种情况,真TM的坑爹的,苹果不说谁TM知道啊!!!),如下这段代码是添加引导页的,把这段代码注释掉就正常了。



  1. //xcode7 不能在application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions里面加载启动页,所以下面这段添加引导页的代码应该是要删除的。 切记!切记!  
  2. //    if (![[NSUserDefaults standardUserDefaults]boolForKey:@"everLaunched"]) {  
  3. //        myView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.window.bounds.size.width, self.window.bounds.size.height)];  
  4. //        [myView setImage:[UIImage imageNamed:@"mainPage.png"]];  
  5. //        [self.window.rootViewController.view addSubview:myView];  
  6. //        MiIntroductionViewController *introVC=[[MiIntroductionViewController alloc]initWithNibName:@"MiIntroductionViewController" bundle:nil];  
  7. //        [self.window.rootViewController presentViewController:introVC animated:NO completion:nil];  
  8. //        [[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"everLaunched"];  
  9. //    }else{  
  10. //        [self buildInstoSpecialEdition];  
  11. //    } 
解决方案二、新的SDK不允许在设置rootViewController之前做过于复杂的操作,导致在didFinishLaunchingWithOptions 结束后还没有设置rootViewController。(这个方案是网友提供的,但是没解决我的问题),具体做法是,先虚设一个rootViewController,代码如下

  1. //    [self.window makeKeyAndVisible];  
  2. //    UIViewController* myvc = [[UIViewController alloc] initWithNibName:nil bundle:nil];  
  3. //    self.window.rootViewController = myvc; 

解决方案三、在Info.plist中,可以找到:“Main storyboard file base name”  String “Main”,删掉这个条目, 再启动,屏幕变成了黑屏,然后手动添加window,具体代码如下:\

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
  2.     // Override point for customization after application launch.  
  3.     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //全屏window  
  4.     self.window.backgroundColor = [UIColor whiteColor]; //白色背景  
  5.     [self.window makeKeyAndVisible]; //  
  6.     return YES;  


目录
相关文章
|
iOS开发
Xcode 10升级报错:libstdc++.6.0.9.tbd
Xcode 10升级报错:libstdc++.6.0.9.tbd
493 0
Xcode 10升级报错:libstdc++.6.0.9.tbd
|
iOS开发
Xcode升级以后,模拟器无法选择只剩My Mac解决办法
Xcode升级以后,模拟器无法选择只剩My Mac解决办法
1041 0
|
开发工具 iOS开发
XCode升级到版本11终端出现的魔性问题修正
概率性出现?因为我不敢保证所有人都有这个问题,而我就遇到了这个问题(100%)。 而这个问题偏偏是我在升级xcode之后才出现的
116 0
升级Xcode8beta4;调试提示:“.app: resource fork, Finder information, or similar detritus not allowed”
进入工程目录;执行 "xattr -rc .";解决 同样适用于模拟器调试出现上述错误提示
2252 0