Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iPad应用程序仅在4.2发行版中崩溃_Iphone_Ipad_Crash_Ios 4.2 - Fatal编程技术网

Iphone iPad应用程序仅在4.2发行版中崩溃

Iphone iPad应用程序仅在4.2发行版中崩溃,iphone,ipad,crash,ios-4.2,Iphone,Ipad,Crash,Ios 4.2,我有一个奇怪的问题,希望有人能解释一下 我在AppStore中有一个ipad应用程序,它是在3.2版本是唯一的版本时发布的 可用于ipad的iOS。该应用程序在iOS上运行良好,但在ipad上推出4.2.1之后 因此,我的一些用户更新到了新的iOS,现在当出现故障时,应用程序崩溃了 某些伊巴布敦人被压制。从iOS 3.2过渡到iOS 4.2.1出来时,我没有提交任何更新,因此它与在上运行的应用程序完全相同 每个iOS我只有在4.2版本才遇到这个问题 在Organizer中进行符号化并查看分发版生

我有一个奇怪的问题,希望有人能解释一下

我在AppStore中有一个ipad应用程序,它是在3.2版本是唯一的版本时发布的 可用于ipad的iOS。该应用程序在iOS上运行良好,但在ipad上推出4.2.1之后 因此,我的一些用户更新到了新的iOS,现在当出现故障时,应用程序崩溃了 某些伊巴布敦人被压制。从iOS 3.2过渡到iOS 4.2.1出来时,我没有提交任何更新,因此它与在上运行的应用程序完全相同 每个iOS我只有在4.2版本才遇到这个问题

在Organizer中进行符号化并查看分发版生成崩溃报告后 我至少能看到导致这种情况的代码行

while(i < [filteredData count]) {
while(i<[Filteredata count]){
就是这样!!…只是在一个while循环中进行一个简单的检查。崩溃的最后一件事 日志指向上面的代码行

filteredData是一个NSMutableArray,它在 这一点。它实际上在这之前的另一段代码中使用,没有 问题。 同样,这一行代码让我的应用程序在iOS 3.2上没有问题,但在iOS 4.2.1上没有问题 导致EXC\u访问错误(SIGSEGV)

当我使用调试或发布配置通过xcode在我的设备上安装应用程序时,它工作得非常完美,但当从AppStore(分发版本)安装时,它会崩溃,并且仅在4.2版本上

只是想澄清一下

该应用程序在3.2版本的调试和分发模式下运行完美

应用程序在4.2的调试模式下运行完美,但在4.2的分发模式下应用程序崩溃

有什么想法吗?……因为我迷茫了
感谢您花时间

可能是编译器在发布版本中进行的优化导致了这一问题,尤其是在调试过程中没有遇到这一问题时

你能重构到

NSUInteger count = [filteredData count];
while(i < count) {
nsuiger count=[Filteredata count];
而(我<计数){
或者Filteredata在循环中发生了变异

NSUInteger count = [filteredData count];
while(i < count) {
   blah;
   blah;
   count = [filteredData count];
}
nsuiger count=[Filteredata count];
而(我<计数){
废话;
废话;
计数=[Filteredata计数];
}

进入目标信息的构建点击时,分发配置和调试配置之间有什么区别?(判断任何字段是否有区别的方法是选择“所有配置”,然后向下滚动并查找“多个值”或复选标记上的破折号。)这是预期的路径差异(调试iphoneos与分发版iphoneos)。“验证内置产品”在分发版上检查,而不是在调试版上检查。设置“复制期间删除调试符号”在分发版上检查,但在调试版上不检查。“优化级别”在调试版上为“无”,在“最快、最小”上检查其他的C标志和C++标志在调试中都是空白的,但是在分发上它们是“-DNSB BoosiSypRead=1”。是的,重构在这里根本不是问题。问题是我如何检查这是否有帮助?正如前面提到的,它只发生在发行版构建上,所以我如何检查?正如你可能知道的,AppStore中的审批流程并不是最快的,所以需要花费数周的时间来缩小范围……更不用说让我的用户恼火了,因为他们会p无需修复即可获得更新只需以发布模式重建,但需使用您的开发证书进行签名。查看此信息。这将证明是否是优化级别造成的。您想将“优化级别”更改为“最快+最小”在你的目标设置中,嗯……是的,这似乎是一个优化问题。更改级别确实会显示崩溃,这是一个很好的原因,现在我可以看到它发生并修复它。奇怪的是,导致崩溃的代码行在while循环中…即使没有进入循环!至少我现在可以看到它…谢谢!!这很奇怪…什么时候我在发布模式下构建,光电级别已经设置为最快+最小,并且没有崩溃。当我在调试模式下构建,只需将光电级别更改为最快+最小(从无)它确实崩溃了。我想我已经解决了我的问题,但只是好奇…发行版不是发行版的克隆吗?但是它在发行版上崩溃了,在发行版上没有崩溃,在调试时也崩溃了,光级别提升了!我只是看不到模式。无论如何,谢谢你的帮助!