2012-04-24 1 views
0

앱을 보관 처리했으며 테스트를 위해 제공되었습니다.iOS 5.1에서만 5.0 이상에서 보관 된 앱이 다운 됨

내가이 응용 프로그램을 실행할 때 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 주 (MyApp를에서) (main.m을 요청했습니다 14)

하는 ARMv7는()의 MyApp에서 시작 0x000025a8 + 32

그러나 설명하는 내용을 잘 모릅니다. 설명하는 내용을 알려주십시오.

고맙습니다.

+1

유일한 해결 방법은 5.1 시뮬레이터 나 장치에서 실행하여 작동 방식을 살펴 보는 것입니다. Apple이 iOS의 새 버전을 출시 할 때마다 (사용량을 줄이기 위해) 코드에서 변경할 필요가 있음을 확인했습니다. 그것. –

답변

0

SIGABRT는 가장 일반적인 유형의 충돌입니다. 실행중인 경우 iPhone 3Gs를 말하고 클라이언트가 최신 iPhone 4/4를 사용하고있는 경우 (예 : 다른 아키텍처 (Armv6/7)에 대해 컴파일 할 수 있음) Armv6으로 설정되어 있는지 확인하고 사용중인 메소드가 더 이상 사용되지 않을 수 있습니다. main.m에서 코드를 찾으십시오. iOS 버전 차이 코드를 사용해야하는 경우가 많이 있습니다 (하지만 대부분은 iOS4/iOS5 용 임).

+0

답장을 보내 주셔서 감사합니다. 지금 내가 뭘해야하는지 말해 줄 수 있겠 니? – user198725878

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

에 위의 라인을 변경.

관련 문제