2012-04-01 2 views
2

내 응용 프로그램은 시뮬레이터에서 완벽하게 작동하지만 장치에서 충돌합니다. 무엇이 장치에서 충돌을 일으키는 지 어떻게 알 수 있습니까?응용 프로그램이 장치에서 시작할 때 충돌하지만 시뮬레이터에서는 정상입니다.

충돌 로그 :

OS Version:  iPhone OS 5.1 (9B176) 
Report Version: 104 

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

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 libsystem_kernel.dylib   0x373a332c __pthread_kill + 8 
1 libsystem_c.dylib    0x339b8208 pthread_kill + 48 
2 libsystem_c.dylib    0x339b1298 abort + 88 
3 GraphicsServices    0x30bfd87c GSRegisterPurpleNamedPort + 188 
4 GraphicsServices    0x30bfe2bc GSEventInitialize + 64 
5 UIKit       0x36e6cc5a UIApplicationMain + 534 
6 AppleIns HD      0x00078bd6 0x77000 + 7126 
7 AppleIns HD      0x00078b80 0x77000 + 7040 
+1

충돌이 발생한 정확한 코드 줄을 찾을 수 있었습니까 (예 : 브레이크 포인트 포함)? –

+0

기기를 재부팅 해 보셨습니까? 체크 아웃 : http://stackoverflow.com/questions/3589631/gsregisterpurplenamedport-sigabrt-in-uiapplicationmain-before-app-delegate-gets – Stavash

+0

Xcode로 기기에서 디버깅 하시겠습니까? 그렇다면 오류가 발생한 행을 가리켜 야합니다 ... – Saphrosit

답변

0

장치에서 응용 프로그램을 삭제 해보십시오. 또한 어떤 장치 (iPhone 3GS, 4, 4s, iPad, iTouch (세대)?)를 말합니다.

다음은 앱을 삭제해도 아무 것도 해결하지 못했다면 엑스 코드를 통해 장치의 응용 프로그램) :

  1. 은 AppDelegate에있는 applicationDidFinishLaunchingWithOptions 방법에 NSLog 문을 넣어 발판이 성공적으로 응용 프로그램을 실행할지 여부 즉, 적어도 당신을 말할 것이다
  2. 을 사용자가 설정하지 않았는지 확인합니다.. 망막 디스플레이 용으로 만 설계되었거나 실행중인 장치 용으로 설계되지 않은 그래픽 파일 (스플래시 화면 이미지, 스토리 보드, Nib 파일, UI 요소 등).
    1. NSLog 문이 실행되면 applicationDidFinishLaunchingWithOptions에서 수행중인 작업으로 시작하여 중단 점을 넣은 다음 응용 프로그램이 중단 될 때까지 코드를 단계별로 실행하십시오. 이렇게하면 문제 해결에 집중해야 할 필요가있는 곳이 제공됩니다. 중단 점 대신 NSLog 문을 사용할 수도 있습니다.
+0

NSLog는 applicationDidFinishLaunchingWithOptions에서 작동하지 않습니다. –

+0

줄에서 충돌 : return UIApplicationMain (argc, argv, nil, NSStringFromClass ([AIAppDelegate class])); –

+0

NSLog는 applicationDidFinishLaunchingWithOptions에서 작동합니다.그것은 return 문 앞에 있어야합니다. 가장 좋은 방법은 메서드의 맨 위에 있습니다. –

0

당신은 시뮬레이터 및 장치에 동일한 대상에 실행하고 있습니까? 그렇다면, 그냥 디버깅 시작하려면 다음을 수행하십시오 당신이 파일을 main.m에, 그래서 때마다 예외를 잡을 수없는

@try { 
    retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([YOUR-AppDelegate-HERE class])); 
} 
@catch (NSException *exception) { 
    NSLog(@"Exception - %@",[exception description]); 
    exit(EXIT_FAILURE); 
} 

장소, 그리고 주까지 거품, 그것은하지 않습니다 무슨 일이 일어 났는지 알려주지 않고 충돌합니다.

+0

도움이되지 않았습니다 ... –

+0

콘솔에 뭔가 표시 되었습니까? –

0

이 충돌은 앱이 실행되기 전에 발생합니다. 위임자의 applicationDidFinishLaunchingWithOptions 메서드가 호출되기 전에.

시도 :

  1. 장치를 재부팅.
  2. 장치를 분리했다가 다시 연결하십시오.
  3. 컴퓨터 재부팅.
관련 문제