应用程序在升级到iOS6后崩溃 - ucol_getVersion

14

我遇到了一个iOS应用程序更新的问题。 在iPhone发布会之前的上周三提交了该应用程序供审核。 针对iOS6-beta、iOS5和iOS4进行了测试,没有问题。 使用iOS5 SDK进行编译。

现在,我仅在iOS6上收到了很多崩溃报告(系统:bugsense)。

简短版本:

SIGSEGV CLASS: SIGNAL FILE: ucol_getVersion +

符号化后,崩溃报告仍然无法读取:

- 0 libicucore.A.dylib 0x318e4570 ucol_getVersion + -1
- 1 TextInput 0x36ee7fa9 _ZN2KB8WordTrie4loadERKNS_6StringE + 280
- 2 TextInput 0x36ee1495 + 16
- 3 TextInput 0x3724bcb3 + 58
- 4 TextInput 0x3724bc51 + 44
- 5 TextInput 0x36ed8f6d _ZN14TIInputManager17load_dictionariesERKN2KB6StringES3_b + 24
- 6 TextInput 0x36ee9fc1 + 220
- 7 TextInput 0x36ee9c07 + 502
- 8 UIKit 0x32c08f7f + 162
- 9 UIKit 0x32c07fd3 + 402
- 10 UIKit 0x32c07be7 + 378
- 11 UIKit 0x32c064b9 + 464
- 12 UIKit 0x32c061ab + 150
- 13 UIKit 0x32c68975 + 388
- 14 UIKit 0x32c65845 + 528
- 15 UIKit 0x32c65541 + 104
- 16 UIKit 0x32c63f47 + 406
- 17 UIKit 0x32c63d6f + 30
- 18 UIKit 0x32c636af + 34
- 19 APP 0x000186ff 0x1000 + 95999
- 20 APP 0x00093a93 0x1000 + 600723
- 21 Foundation 0x33ac7ef5 + 16
- 22 Foundation 0x33a079f1 + 200
- 23 Foundation 0x33a0790d + 60
- 24 CFNetwork 0x388ff5df + 26
- 25 CFNetwork 0x388feccb + 54
- 26 CFNetwork 0x38927133 + 18
- 27 CoreFoundation 0x361f974d CFArrayApplyFunction + 176
- 28 CFNetwork 0x38927593 + 74
- 29 CFNetwork 0x3888b15d + 188
- 30 CoreFoundation 0x36288683 + 14
- 31 CoreFoundation 0x36287ee9 + 212
- 32 CoreFoundation 0x36286cb7 + 646
- 33 CoreFoundation 0x361f9ebd CFRunLoopRunSpecific + 356
- 34 CoreFoundation 0x361f9d49 CFRunLoopRunInMode + 104
- 35 Foundation 0x339f678f + 254
- 36 APP 0x0007e4c9 0x1000 + 513225
- 37 Foundation 0x33a923db + 102
- 38 libdispatch.dylib 0x3535611f + 10
- 39 libdispatch.dylib 0x3535a961 + 252
- 40 libdispatch.dylib 0x3535aac1 + 84
- 41 libsystem_c.dylib 0x3605ea11 + 360

有没有遇到同样问题的人? 我怎样才能定位崩溃呢?


堆栈跟踪,嗯,除非你很幸运,有人遇到了完全相同的崩溃,否则它并没有什么帮助。你无法使用IOS6 RTM或模拟器自己重现崩溃吗? - Joachim Isaksson
1
我已经在几台iOS6设备上测试了来自App Store的版本,没有崩溃。我也在模拟器中测试了该版本,结果相同。 - bend0r
我遇到了类似的崩溃:在使用蜂窝网络的 iOS 6.0(生产版本,而非 GM 种子版本)中,当尝试显示 UIAlertView 时崩溃。Wi-Fi 连接没有问题。 - Raptor
2个回答

36
我也遇到了同样的问题,在我尝试显示UIAlertView时,应用程序崩溃了。原来所有与UI相关的绘图函数都需要在UI线程上执行(我已经知道这一点,但可能有些草率)。可惜的是错误消息很晦涩。
这个帖子可能对你有所帮助: https://devforums.apple.com/message/728324 考虑到你发布的堆栈跟踪中存在UIKit类,我猜这也是你的问题。

2
有同样的问题。对我有用。我只是使用了 - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait; - solgar
是的,我也是。我在后台线程中有一些获取数据并显示UIAlert的问题。使用@solgar的解决方案对我也起作用了。 - DAS
同样的问题;解决方案是将我的UIAlertView代码从viewWillAppear:移动到viewDidAppear:。 - toblerpwn
我曾经遇到过同样的问题,通过在主线程上添加(执行)该方法来显示UIAlertview,问题得以解决。 - iNeal
干杯,我在将代码改为使用在后台线程执行的MBProgressHUD后遇到了同样的问题,我在block dispatch_async(dispatch_get_main_queue()中添加了我的UIAlertView。 - Jasper

9
这个问题很容易解决。只需在这段代码中输入您的代码:

在这里输入您的代码:

dispatch_async(dispatch_get_main_queue(), ^{
// Create and show your alert view here      
});

Alex


这就是我需要的解决方案。 - Can Aksoy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接