iOS 13启动时崩溃

时间:2019-10-01 05:46:51

标签: ios crash ios13

随着iOS 13.0更新,应用在启动时崩溃。用户报告应用程序重新启动时崩溃。

我从Crashlytics收到了此消息:

紧接着,[AppDelegate application:didFinishLaunchingWithOptions:]在ViewController上调用viewDidLoad:,它在应用程序流程中使用的时间很晚,甚至可能永远不会使用。

非常奇怪的是:-我无法复制,对于我所测试的每部iPhone,应用程序都可以正常运行。它不适用于我们10%的用户。

  1. Crashlytics是否会出错? -报告错误,因为Crashlytics尚未初始化

  2. 出现错误的ViewController的名称,它是“ ViewController”-可能会发生冲突吗?似乎这一个没有正确初始化。 进入viewDidLoad:我有这个:

    self.tabButtons = @[_btnOne, _btnSecond, _btnThird, _btnFourth];-在Crashlytics中使用

    报告此行

    “致命异常:NSInvalidArgumentException ***-[__ NSPlaceholderArray initWithObjects:count:]:尝试从对象[0]中插入零对象”

  3. 我该如何复制?

这是AppDelegate.m中的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...............................
    [self showFirstScreen];
    self.window.rootViewController = nav;
    [self.window makeKeyAndVisible];
    return YES;
}


-(void) showFirstScreen {
    NSInteger companyAddedGet = [[NSUserDefaults standardUserDefaults] integerForKey:@"companyAdded"];
    (companyAddedGet == -1) ? [self showAddNewCompanyViewController] : [self login];
}

-(void) login {
    ([[NSUserDefaults standardUserDefaults] objectForKey:@"LOGIN_DETAIL"]!=nil) ? [self automaticLogin] : [self showLogin];
}

-(void) automaticLogin {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Launch Screen" bundle:nil];
    UIViewController *launchScreen = [storyboard instantiateViewControllerWithIdentifier:@"LaunchScreenVC"];
    nav = [[UINavigationController alloc] initWithRootViewController:launchScreen];
    nav.navigationBarHidden = YES;
    [FIRAnalytics logEventWithName:@"login_automat" parameters: nil];
    [self fetchCompanyData];
}

-(void) showLogin {
    viewController = [[loginViewController alloc] initWithNibName:@"loginViewController" bundle:nil];
    nav = [[UINavigationController alloc] initWithRootViewController:viewController];
    nav.navigationBarHidden = YES;
}

-(void) showAddNewCompanyViewController {
    .....
    AddNewCompanyVC *addNewVC = [[AddNewCompanyVC alloc] initWithNibName:@"AddNewCompanyVC" bundle:nil];
    [(AppObj).nav pushViewController:addNewVC animated:YES];
}

enter image description here

1 个答案:

答案 0 :(得分:0)

问题是这样的:(我不修改问题-但我将解决方案放在这里)。

  • app没有使用Main.storyboard中声明的初始viewcontroller,因为每个vc都在需要的时刻进行了初始化。很好但是不需要Main.storyboard声明。也是初始视图控制器。

  • 最初使用的VC是.....“ suprise” ....出现错误的ViewController。

此外,由于这个原因,没有一个UITest启动。我不明白为什么。