存档的应用程序仅在iOS 5.1而非5.0上崩溃

时间:2012-04-24 07:11:27

标签: iphone ios ios5

我已将我的应用存档并提供测试。

当我运行这个应用程序时,我在ios5版本上没有发现任何崩溃。(我没有5.1设备) 但我的客户端有5.1版本,当他试图点击应用程序内的一些按钮时发生了崩溃。

所以我问过他的崩溃报告,如下所示

Date/Time:       2012-04-23 12:54:10.320 +1000
OS Version:      iPhone OS 5.1 (9B179)
Report Version:  104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread:  0

Last Exception Backtrace:
(0x3788488f 0x35d8a259 0x37884789 0x378847ab 0x38037a1b 0x9451 0x2493b 0x33f69e33 0x33f76391 0x33f76201 0x33f760e7 0x33f75969 0x33f756ab 0x33f69ca7 0x33f6997d 0xb397 0xc21f 0x3408f3cb 0x377de3fd 0x33f4bfaf 0x33f4bf6b 0x33f4bf49 0x33f4bcb9 0x33f4c5f1 0x33f4aad3 0x33f4a4c1 0x33f3083d 0x33f300e3 0x326e822b 0x37858523 0x378584c5 0x37857313 0x377da4a5 0x377da36d 0x326e7439 0x33f5ee7d 0x25f7 0x25b0)

    Thread 0 name:  Dispatch queue: com.apple.main-thread
    Thread 0 Crashed:
    0   libsystem_kernel.dylib          0x35d0332c 0x35cf2000 + 70444
    1   libsystem_c.dylib               0x31e51208 0x31e04000 + 315912
    2   libsystem_c.dylib               0x31e4a298 0x31e04000 + 287384
    3   libc++abi.dylib                 0x35456f64 0x35450000 + 28516
    4   libc++abi.dylib                 0x35454346 0x35450000 + 17222
    5   libobjc.A.dylib                 0x35d8a350 0x35d81000 + 37712
    6   libc++abi.dylib                 0x354543be 0x35450000 + 17342
    7   libc++abi.dylib                 0x3545444a 0x35450000 + 17482
    8   libc++abi.dylib                 0x3545581e 0x35450000 + 22558
    9   libobjc.A.dylib                 0x35d8a2a2 0x35d81000 + 37538
    10  CoreFoundation                  0x377da506 0x377cb000 + 62726
    11  CoreFoundation                  0x377da366 0x377cb000 + 62310
    12  GraphicsServices                0x326e7432 0x326e3000 + 17458
    13  UIKit                           0x33f5ee76 0x33f2d000 + 204406
    14  MyApp                           0x000025f0 0x1000 + 5616
    15  MyApp                           0x000025a8 0x1000 + 5544

当我在终端中调试崩溃报告时,

  

armv7 0x000025f0 main(在MyApp中)(main.m:14)

     

armv7 0x000025a8 start(在MyApp中)+ 32

但我不确定它描述的内容,请让我知道它的解释

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

SIGABRT是最常见的崩溃类型。如果您正在运行说iPhone 3gs并且您的客户端正在使用较新的iPhone 4 / 4s,例如您可能正在编译不同的架构(Armv6 / 7),请确保在此情况下将其设置为Armv6,它也看起来像其中一个您正在使用的方法可能已被弃用。在main.m中查找代码。有很多实例你必须使用iOS版本的差异代码(但大部分都是针对iOS4 / iOS5)

答案 1 :(得分:0)

我遇到了同样的问题,我在我的应用中使用了核心数据,所以如果您使用核心数据,也许这个答案对您有所帮助,我通过更改persistentStoreCoordinator商店代码来修复我的问题。

    ....
    - (NSPersistentStoreCoordinator *)persistentStoreCoordinator {

        if (persistentStoreCoordinator != nil) {
            return persistentStoreCoordinator;
        }

        NSURL *storeUrl = [NSURL fileURLWithPath:[[self applicationDocumentsDirectory] stringByAppendingFormat:@"yourdb.sqlite"]] ;
    ....

检查此行

NSURL *storeUrl = [NSURL fileURLWithPath:[[self applicationDocumentsDirectory] stringByAppendingFormat:@"yourdb.sqlite"]] ;

将上述行更改为

NSURL *storeUrl = [NSURL fileURLWithPath:[[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"yourdb.sqlite"]] ;

这解决了我的问题。