Xcode 7 打包上传app,兼容iOS9,遇到的坑(一) 问题:UIApplication.m:3294

    楼主是在十一前提交最新版本的app到AppStore。假期归来满心欢喜以为上架了,于是打开iTunes Connect,打开一看,被拒绝了。尼玛,这是第二次被拒绝了。

    楼主不敢轻易提交代码了,就认真的把代码review一遍,也没发现什么问题。打开崩溃日志发现如下错误报告:

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

     下面是apple给出的崩溃分析建议

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application windows are expected to have a root view controller at the end of application launch'
terminating with uncaught exception of type NSException
abort() called
一般来说apple给出的建议,应该就是崩溃的主要原因,这句话的大致意思就是:在运行app时捕捉到了NSInternalInconsistencyException异常,给出原因就是:在app启动将要结束的时候,应用必须要有一个rootViewController。也就是说我们在进行设置rootViewController之前,不能进行过于复杂的操作,比如设置引导页。

楼主的解决办法:

    self.window = [[UIWindow alloc] init];
    [self.window  setFrame:[[UIScreen mainScreen] bounds]];
    UIViewController *showDetailDescripVC = [[UIViewController alloc] init];
    self.window.rootViewController = showDetailDescripVC;
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];


    // Added Introduction View Controller
    BOOL login = [NSVerify_Tool unArchiveIsFirstLoginApp];
    if (!login) {
        /**
         *  引导页
         */
        NSArray *coverImageNames = @[@"loading1", @"loading2", @"loading3"];
        self.introductionView = [[ZWIntroductionViewController alloc] initWithCoverImageNames:coverImageNames backgroundImageNames:nil];
        [showDetailDescripVC.view addSubview:self.introductionView.view];
        __weak AppDelegate *weakSelf = self;
        self.introductionView.didSelectedEnter = ^() {
            [NSVerify_Tool archiveIsFirstLoginApp:YES];
            LFMainViewController *contentVC = [[LFMainViewController alloc] init];
            UINavigationController *naviVC = [[UINavigationController alloc] initWithRootViewController:contentVC];
            weakSelf.window.rootViewController = naviVC;
            
        };


    }
    else
    {
        //不是第一次使用该app,设置rootViewController = mainViewController
    }


    希望可以帮助遇到同类问题的童鞋。


你可能感兴趣的:(OC,iOS9,解决办法,Xcode7)