2012-04-24 76 views
0

我已經存檔我的應​​用程序和測試給出。 (我沒有5.1設備) 但是我的客戶端有5.1版本,當他試圖在點擊應用程序內的某個按鈕時崩潰了。歸檔應用程序崩潰在iOS 5.1不上5.0

,所以我有問他的崩潰報告看起來如下

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主(在MyApp的)(的main.m :14)

的ARMv7 0x000025a8啓動(在MyApp的)+ 32

但我不知道它介紹了,請讓我知道什麼解釋

非常感謝你的幫助。

+1

唯一的解決辦法是執行它在5.1模擬器或設備,看看它是如何工作的,我注意到,每一個蘋果的時候發佈的iOS新版本我必須改變我的代碼的東西(不是很多),才能使用它。 – 2012-04-24 07:30:47

回答

0

SIGABRT是最通用的類​​型崩潰。如果你正在運行說,一個iPhone 3GS和您的客戶端使用較新的iPhone 4/4S,例如,你可以編譯爲不同的架構(ARMv6的/ 7)確保其設置爲的ARMv6在這種情況下,它也像的一個您正在使用的方法可能會被棄用。在main.m中查找代碼有很多情況下,你必須使用iOS版本的差異代碼(但大部分是iOS4/iOS5)

+0

謝謝你的回覆。你能告訴我我現在需要做什麼嗎? – user198725878 2012-04-24 08:43:48

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"]] ; 

這正好解決了我的問題。