2010-08-14 2 views
1

Xcode를 사용하지 않고 아이폰 앱을 실행하려고 할 때 이상한 행동이 발생합니다. Build &을 실행하여 실행하면 Xcode로 실행하면 정상적으로 실행되지만, USB 케이블을 분리하고 아이폰의 앱을 두드리는 것으로 충돌이 발생하면 충돌이 발생하지 않아 충돌 로그가 생성됩니다.아이폰 앱을 Xcode를 통해 실행하고 아이폰을 통해 실행하는 것의 차이점

이 동작을 일으킬 수있는이 두 시나리오의 차이점은 무엇입니까?

답변

1

차이점은 Xcode를 통해 실행하면 디버거가 연결되어 많은 제한이 적용되지 않는다는 것입니다. 예를 들어 앱이 시작되면 몇 초 동안 응답해야합니다. 그렇지 않으면 앱이 종료됩니다. 디버거를 사용하여 실행하면 해당 제한이 해제됩니다. 종료 할 때 동일 : 홈 버튼 (멀티 태스킹을하지 않고 iOS < 4 또는 iOS> = 4)을 누르면 앱이 종료되는 데 5 초가 걸립니다. 디버거가 첨부 된 상태는 아닙니다.

오류 로그에서 오류 메시지를 게시하면 도움이 될 수 있습니다.

+0

"몇 초 만에 응답해야"한다는 것은 무엇을 의미합니까? 우리 앱이 시작될 때 일반적으로 20 초 이상 지속되는 긴 초기화 프로세스를 만들고 있습니다. 어쩌면 우리의 응용 프로그램이 주 스레드 대신 백그라운드 스레드에서 초기화 프로세스를 수행해야합니까? – Diego

+0

난 그냥 아이팟 터치 2G에서 다음 아이폰 3GS에서 내 애플 리케이션을 테스트하고, 3GS에서 충돌하지 않았어, 그래서 배경 선택기에서 초기화의 생각은 갈 방법입니다 같아요. 나는 그것을 시도하고 다시보고 할 것이다. – Diego

+0

'applicationDidFinishLaunching' 또는'application : didFinishLaunchingWithOptions :'는 제 시간에 돌아와야한다. 이것을'sleep'로 간단히 테스트 할 수 있습니다. 'sleep (30)'을 삽입하면 디버거에 의해 실행되지 않으면 앱이 죽게됩니다. 따라서 장시간 실행되는 init 태스크는 별도의 태스크 (또는'performSelectorInBackground : withObject :')로 실행되어 완료되면 알림을 보내야합니다. 한 가지 기억해야 할 점은, 백그라운드 태스크가 GUI 요소를 수정해야 할 경우'performSelectorOnMainThread : withObject : waitUntilDone :'을 통해 필요할 것입니다. – DarkDust

0

Xcode에서 앱을 실행 한 후에 종료 했습니까? iOS 4를 사용하면 백그라운드에서 계속 실행되며 iPhone에서 앱을 누르면 바로 포 그라운드로 이동합니다.

홈 버튼을 두 번 클릭하고 계속 실행되는지 확인합니다. 그렇다면 빼기 기호가 나타날 때까지 앱을 탭하고 탭합니다.

관련 문제