仅通过 hockeyapp 构建发生的崩溃?

Crash that only occurs via hockeyapp builds?

我遇到的问题是只有通过 HockeyApp 安装应用程序时才会发生崩溃,而不是通过 Xcode。

这是我从 HockeyApp 获得的报告:

*** 由于未捕获的异常 'NSRangeException' 而终止应用程序,原因:'-[__NSCFArray objectAtIndex:]: 索引(-1970199490(或可能更大))超出范围 (15)' MainViewController.m,第 646 行

指的是这一行:

for (int i; i < [resultsArray count]; i++) {
    if ([[resultsArray[i] valueForKey:@"uniqueId"] isEqualToString:[[NSUserDefaults standardUserDefaults]
                                                           stringForKey:@"FbId"]]) {
        resultsArray = resultsArray[i];
    }
}

知道为什么当通过 HockeyApp 而不是通过 Xcode 安装构建时我会在那里崩溃吗?我什至尝试过使用开发和分发证书将应用程序构建到设备上,但只要构建不是通过 HockeyApp 安装,两者都可以正常工作。

我认为问题在于没有在 for 循环中初始化 i 的值。

应该是for (int i=0;....

如果没有初始化,那么i的值就不可预知了,可以是null也可以是内存地址的值

如果你没有初始化它,那么这里将会无限循环(如果没有崩溃)因为i的值将是一些随机负数-1970199490,

此外,即使您从 xcode 执行此操作,也会导致相同的行为。