iOS 시뮬레이터에서 테스트시 오류 : 부트 스트랩 서버에 등록 할 수 없습니다


370

UIAlertView 버튼을 클릭하면 시뮬레이터에서 내 앱을 테스트하고있었습니다. 거기에서 디버깅을 중단하고 코드를 약간 변경하고 앱을 다시 빌드했습니다. 이제 응용 프로그램을 실행하면 콘솔 에이 오류가 발생합니다.

부트 스트랩 서버에 com.myApp.debug를 등록 할 수 없습니다. 오류 : 알 수없는 오류 코드입니다. 이것은 일반적으로이 프로세스의 다른 인스턴스가 이미 실행 중이거나 디버거에 정지되었음을 의미합니다. 프로그램 수신 신호 : "SIGABRT".

깨끗한 빌드를 수행하여 시뮬레이터에서 앱을 제거하려고 시도했지만 앱을 실행하려고 할 때 여전히이 오류가 발생합니다.

시뮬레이터에서 앱을 다시 실행하려면 어떻게해야합니까?


2
장치에서 테스트하는 동안 이러한 일이 발생할 때 수행 할 작업에 대한 제안 사항이 있습니까? 장치 Xcode를 다시 시작하려고했습니다.
iPadDeveloper2011

1
또한 장치에서 응용 프로그램을 삭제하고 모든 활성 응용 프로그램을 종료합니다 (더블 클릭 홈, 응용 프로그램 아이콘을 손가락으로 누르고, '-'기호 터치). Xcode를 다시 시작하고 로그 아웃 한 다음 다시 로그인하십시오. 지금까지 아무것도 작동하지 않습니다.
iPadDeveloper2011

XCode 메뉴에서 "캐시 비우기"를 시도하십시오. 도움이됩니다.
lostInTransit

3
나중에이 문제에 직면 한 모든 사람들 에게이 문제는 코드의 버그로 인해 대부분 발생합니다. 많은 실행 시간이 걸리거나 앱이 반복되는 코드를 찾으십시오.
lostInTransit

4
그런 일이 발생하면 SimulatorBridge를 종료하고 시뮬레이터를 종료하십시오. ps ax | grep SimulatorBridge
Elland

답변:


162

시뮬레이터를 종료했다가 다시 시작해보십시오. "최악이 나 빠진다"면 항상 다시 시작해 볼 수 있습니다. 내 경험에 따르면 문제가 해결됩니다.


44
시스템을 다시 시작했습니다! 그래도 문제의 원인을 모릅니다.
lostInTransit

6
아래 주석에서 알 수 있듯이 일반적으로 활동 모니터에서 중단 된 프로세스를보고 프로세스를 종료 할 수 있습니다.
mxcl

13
나는 다시 시작하는 것을 싫어한다 :) 중단 된 프로세스를 종료하면 나를 위해 일했다 : ps ax | grep Simulator는 실행중인 앱을 보여줍니다. 제 경우에는 중단 된 MyApp.app였습니다.
BadPirate

12
다시 도움이되지
파스칼 클라인

10
나는 종종 이것을 XCode 4.3에서 얻는다. 응용 프로그램을 다시 시작하거나 시뮬레이터를 종료해도 도움이되지 않습니다. 작동하려면 컴퓨터를 다시 시작해야합니다.
Øystein

242

상태: 최근 Mac OS 10.8 및 Xcode 4.4로 표시되었습니다.

tl; dr : 두 가지 상황에서 발생할 수 있습니다 : 장치에서 실행할 때와 시뮬레이터에서 실행할 때. 장치에서 실행할 때 장치를 분리했다가 다시 연결하면 문제가 해결되는 것 같습니다.

마이크 애쉬 제안

launchctl list|grep UIKitApplication|awk '{print $3}'|xargs launchctl remove

이것은 항상 작동하지 않습니다. 사실, 그것은 나를 위해 일한 적이 없지만 어떤 경우에는 분명히 작동합니다. 어떤 경우인지 모릅니다. 시도해 볼 가치가 있습니다.

그렇지 않으면이 문제를 해결하는 유일한 방법은 시작된 사용자를 다시 시작하는 것입니다. 재부팅하면 그렇게되지만 덜 과감하고 빠른 방법이 있습니다. 다른 관리자를 만들어야하지만 한 번만하면됩니다. 문제가 발생하면 자신으로 로그 아웃하고 해당 사용자로 로그인 한 다음 기본 사용자에 속하는 시작된 사용자를 종료하십시오.

sudo kill -9 `ps aux | egrep 'user_id .*[0-9] /sbin/launchd' | awk '{print $2}'`

에 기본 사용자 이름을 바꿉니다 user_id. 일반 사용자가 다시 정상 상태로 돌아 오면 다시 로그인하십시오. 고통 스럽지만 전체 재부팅보다 덜합니다.

세부:

이것은 Lion / Xcode 4.2에서 더 자주 시작되었습니다. (개인적으로, 나는 그 조합 전에 그것을 본 적이 없습니다.)

디버거가 버그를 죽이지 않고 디버깅을 중단하면 앱 프로세스를 자식으로 상속하는 버그가 시작된 것 같습니다. 이것은 일반적으로 응용 프로그램이 좀비가되고 신호 상태가 Z 인 Zs로 표시됩니다.

핵심 문제는 시작시 구현 된 부트 스트랩 이름 서버에있는 것으로 보입니다. 이것은 (내가 이해하는 한) 앱 ID를 마하 포트에 매핑합니다. 버그가 트리거되면 앱이 종료되지만 부트 스트랩 서버의 이름 서버 맵에서 정리되지 않으므로 부트 스트랩 서버는 동일한 이름으로 앱의 다른 인스턴스를 등록하는 것을 거부합니다.

wait()좀비 를 강제로 발사하면 문제가 해결 되길 바라지 만 (댓글 참조) 그렇지 않습니다. 핵심 문제인 좀비 상태가 아니기 때문에 (일부 좀비가 양성인 이유) 부트 스트랩 이름 서버이며이 짧은 킬링 런칭을 해결할 방법이 없습니다.

Xcode, gdb 및 사용자가 시작한 것 사이에 문제가 발생하여 버그가 발생한 것처럼 보입니다. 방금 iphone 시뮬레이터에서 앱을 실행하고 gdb 내에서 중지 한 다음 빌드를 수행하고 ipad 시뮬레이터로 실행하여 웨지를 반복했습니다. 스위칭 시뮬레이터 (iOS 4.3 / iOS 5, iPad / iPhone)에 민감한 것으로 보입니다. 시뮬레이터를 많이 전환 할 때 항상 발생하지는 않지만 상당히 자주 발생합니다.

로그인 한 상태에서 킬을 시작하면 세션이 중단됩니다. 로그 아웃했다가 다시 로그인해도 사용자가 시작한 것이 아닙니다. OS X은 기존 프로세스를 유지합니다. 재부팅하면 문제가 해결되지만 고통 스럽습니다. 위의 지침이 더 빠릅니다.

FWIW Apple에 버그를 제출했습니다. 레이더 : // 10330930


2
새로운 Lion / XCode4.2 동작에 대해 자세히 설명해 주셔서 감사합니다. 두 개의 개별 앱을 디버깅 할 때 더 자주 발생하는 것 같습니다.
samkass

2
라이온 만이 아닙니다. 여기에서 여전히 Snow Leopard를 사용하고 XCode 4.2 이후 로이 오류가 여러 번 나타납니다. (iOS SDK 5.0이 출시 될 때까지 XCode 3.x를 사용하는 데 사용됩니다.)
Jonny

3
정보 주셔서 감사합니다 ... 최근에 저에게 미친 듯이 자주 일어나고 있습니다 ... 지난 10 분 동안 두 번. 끊임없이 다시 시작해야 할 때 확실한 워크 플로우를 얻기가 어렵습니다. 음, 컴퓨터를 다시 시작하려면 끄십시오.
Brad Goss

1
@ smparkes : 실제로 이전보다 더 자주 발생하는 것 같습니다. 나는 bundleID를 변경하면 모든 것이 다시 작동하지만 CoreData 논리로 작업 할 때 성가신 것입니다. 재부팅보다 성가신 일이 아니라고 인정합니다.
Mike A

2
4.3.1 그리고 지금 막 일어났다 ... soooo 성가신. 저에게 iPhone 자체를 재시동하면 정상적으로 해결되므로 Mac을 재시동 할 필요가 없습니다. 스노우 레오파드 (Snow Leopard)에서 2011 년 9 월경 XCode 4.2에서 발생했습니다.
TheEye

70

Lion + Xcode 4.2에서이 문제가 발생하기 시작했습니다. Xcode 4.3에서도 문제가 발생했습니다.

모든 제안을 시도했지만 전체 재부팅 이외의 다른 방법은 없습니다.

다음은 재부트가 빠른지 확인하는 방법입니다.

모든 좀비 프로세스를 나열하십시오.

ps -el | grep 'Z'

앱이 좀비 프로세스로 표시되면 컴퓨터를 재부팅해야합니다. 오류 메시지는 "이것은 일반적으로이 프로세스의 다른 인스턴스가 이미 실행 중이거나 디버거에 정지되어 있음을 의미합니다." 글쎄, Xcode는 당신이 죽일 수없는이 좀비 프로세스를 감지하고 있습니다. 이 문제를 해결할 수있는 유일한 방법은 시스템 재부팅입니다. :(

편집, 20120823 : 좀비 프로세스에 대해 더 잘 알고 있으므로이 답변을 업데이트하고 싶었습니다. 좀비 프로세스는 상위 프로세스가 종료하는 하위 프로세스에서 wait () (프로세스가 변경 될 때까지 대기)를 호출하지 않을 때 작성됩니다. 좀비 프로세스에서 직접 'kill'을 실행할 수는 없지만 상위 프로세스를 종료하면 좀비 하위 프로세스가 '리프'되어 프로세스 테이블에서 제거됩니다.

오랫동안이 문제를 보지 못했기 때문에이 시나리오에서 상위 프로세스가 무엇인지 검사하지 않았습니다. 상위 프로세스를 종료하는 대안은 시스템을 재부팅하는 것입니다. :)


고마워, 좀비로 실행중인 3 개의 프로그램 중 7 인스턴스가있었습니다.
ArtSabintsev

1
위에서 언급했듯이 재부팅만으로는 충분하지만 필요하지는 않습니다. 또한 때때로 문제를 일으키지 않는 좀비가 있으므로이 방법으로 좀비를 찾는 것이 실제로 신뢰할만한 척도는 아닙니다. 유일한 부호는 Xcode의 메시지입니다.
smparkes

이 좀비 프로세스를 루트로 죽이려고 했습니까? 내가 생각하기 전에 재부팅했습니다.
Ryan H.

1
@ smparkes, 그렇습니다.이 오류 메시지를 논의하는이 질문을 바탕으로 분명합니다.
jyap

1
@HZC, 예, 좀비 프로세스는 루트로도 죽일 수 없습니다.
jyap

20

방금이 일이 발생했습니다. 장치에서만 오류가 발생하고 시뮬레이터가 제대로 작동했습니다. 장치를 재설정해야했고 오류가 사라졌습니다.


1
여기에서 동일하게 장치를 다시 시작하면 사라졌습니다. 시뮬레이터는 잘 작동했습니다
agente_secreto

15

최근에이 문제가 자주 발생합니다. 이것이 발생하지 못하게하는 것은 무엇입니까? 로그 아웃하고 문제를 해결하지만 문제가 자주 발생합니다.

편집하다:

방금 원인을 찾았습니다. ApplicationWillTerminate 메서드에 버그가있었습니다. 따라서 Xcode 창에서 중지 버튼을 클릭하면 앱이 올바르게 종료되지 않고 중단되기 시작했습니다.

활동 모니터를 확인하여 앱이 목록에 있는지 확인하십시오. 가능하면 강제 종료하십시오.


2
이것은 나를 위해 그것을 고쳤다! PS AUX | grep 시뮬레이터
Jason Prado

Leak Performance Tools를 시작하는 동안이 버그를 생성하는 데 도움이되는 경우
IssamTP

14

좀비 프로세스로 인한 문제인 경우 :

ps -el | grep 'Z'
(이전 의견 https://stackoverflow.com/a/8104400/464289 에서와 같이 ) 즉시 문제를 해결하려면 재부팅하거나 아무것도 죽이지 않고 해결할 수 있습니다. 프로젝트 대상 실행 파일의 이름을 바꾸십시오.

  1. 왼쪽 창에서 프로젝트를 클릭하십시오
  2. 가운데 창에서 빌드 설정 을 선택 하십시오.
  3. ' 포장 아래 '에서 ' 제품 이름 '을 $ (TARGET_NAME)에서 $ (TARGET_NAME) (으)로 변경하십시오 .1

쉬운!


이것은 나를 위해 일을하지 않았다 내가 얻을 같은 오류가있어 'mataleao2'지정 'au.com.mataleao-1'의 현재 설정을 일치하지 않는 응용 프로그램 식별자 'au.com.mataleao을'프로필 프로비저닝
sapatos을

시뮬레이터 또는 iPhone에서 테스트하고 있습니까?
JRG

기능은 휴대 전화에서만 작동합니다.
sapatos

7

글쎄, 대답은 없지만 적어도 하나 이상의 테스트를해야합니다. 터미널을 열고 "ps-Ael | grep Z"명령을 실행하십시오. "(clang)"과 다른 앱 또는 회사 이름의 두 항목이 있으면 재부팅해야합니다.

개발자 인 경우 짧은 버그를 입력하고 Apple에게 재부팅해야하는 성가신 방법을 알려주고 방금 입력 한 "rdar : // 10401934"로이 버그를 복제 할 수 있다고 언급하십시오.

데이비드


5

iOS 시뮬레이터를 재설정하면 오류가 해결되었습니다. 이렇게하면 Simulator에있는 모든 앱이 제거되지만 컴퓨터를 다시 시작하지 않고도 문제가 해결됩니다.

다음을 수행하여 iOS 시뮬레이터를 재설정 할 수 있습니다.

1) 기본 화면의 가장 왼쪽에있는 Apple () 로고 옆에있는 "iOS Simulator"메뉴로 이동하십시오.
2) "내용 및 설정 재설정 ..."을 선택하십시오.
3) 팝업 메시지를 읽고 동의하면 "재설정"을 클릭하고 그렇지 않으면 "재설정 안 함"을 클릭하십시오.


3
1 비트를 도와주지 않고 대신 모든 컨텐츠 / 앱 / 사진 / 연락처를 잃어 버립니다
이상한

1
@ 이상한 시뮬레이터입니다. 어쨌든 중요한 정보가 포함되어 있지 않습니다. :)
Evgen Bodunov 2019 년

5
  1. 시뮬레이터 닫기
  2. xCode에서 앱 실행을 중지하십시오.
  3. 활동 모니터를 열고 앱 이름으로 실행중인 프로세스를 검색 하십시오 .
  4. 활동 모니터에서이 프로세스를 종료하십시오.
  5. 프로젝트를 다시 빌드하면 모든 준비가 완료됩니다

프로세스는 "강제 종료"를 사용해도 Activity Monitor에서 강제 종료 된 것으로 보입니다.
Ferruccio

4

좀비 프로세스에서 @jyap 언급 문제가있었습니다. 그것들을 지우는 유일한 방법은 재부팅하는 것입니다. 그러나 같은 프로젝트에서 일하는 친구들이 같은 문제를 겪지 만 좀비 프로세스를 만들지 않고 시뮬레이터를 죽일 수 있음을 알았습니다. Xcode를 완전히 제거한 다음 다시 설치했는데 여전히 오류가 발생하는 동안 좀비 프로세스가 생성되지 않으므로 재부팅 할 필요가 없습니다.

그렇게하기 전에, 나는 정말로 추악한 해결책을 사용하고있었습니다. 앱 ID를 변경하고 다시 실행하십시오. 시뮬레이터에서 앱의 정크 복사본이 생겼지 만 잠시 동안 재부팅을 해제 할 수 있습니다.


4

이 오류는 거의 시뮬레이터에서 앱을 테스트 할 때마다 나에게 많이 발생하여 다시 시작해야합니다.

몇 가지 작업을 수행하려는 경우 해결 방법은 다음과 같습니다.

  • 프로젝트 탐색기에서 프로젝트를 클릭하십시오
  • 이동 목표 -> 정보
  • 응용 프로그램이 백그라운드에서 실행되지 않고로 설정된 키를 추가하십시오 YES.

즉, 시뮬레이터에서 홈 버튼을 누르거나 시뮬레이터를 종료하면 앱이 중단되지 않습니다.

배포하기 전에이 설정을 다시 변경하는 것을 잊지 마십시오! 릴리스 체크리스트에 넣으십시오 :)


1
다시 변경해야 할 때까지 백그라운드 동작을 테스트하지 못하게되므로 위험합니다.
tc.

@ tc : 예, 동의합니다. 그러나 iOS 앱을 실행할 때마다 강제로 다시 시작 해야하는 경우 (내가 가진 것임) 이것이 대안보다 여전히 낫습니다.
Chris Burt-Brown

4

iPhone에서 테스트 할 때 이런 일이 발생합니다. 전화를 다시 시작하면됩니다. 내가 들었던 것에서 전화 또는 시뮬레이터는 여전히 실행중인 응용 프로그램의 인스턴스가 있다고 생각하므로 마지막으로 실행되었을 때 코드에서 오류가 발생하거나 전화 / 시뮬레이터가 잘못되고 싶었습니다. 신음 소리.


4

iPhone 4에서 앱을 디버깅하는 동안이 오류가 발생했습니다. iPhone을 강제 재부팅하면 문제가 해결되었습니다. (아이폰 전원을 끄면 ...)

내 Mac에서 좀비 프로세스가 없었으며 Mac을 재부팅해도 문제가 해결되지 않았습니다.

아마도이 버그는 시뮬레이터와 실제 장치 모두에서 나타날 수 있습니까 ???



3

방금이 오류가 발생했습니다. 시뮬레이터와 Xcode를 다시 시작했지만 깨끗하고 빌드 한 후에 만 ​​프로젝트가 다시 작동합니다. 그 원인을 알 수 없습니다.


3

나는 재귀 세터가있어 스택을 뚫고 내 iPad를 전원 부팅 해야하는 방식으로 내 응용 프로그램을 죽였습니다. 코드 수정으로 입증되었습니다.


3

나는 같은 문제가 있었고 다음을 수행하여 해결했다.

  • 기기에서 앱을 삭제하면
  • Mac에서 기기 연결 해제
  • 장치를 껐다가 다시 켜십시오.
  • Xcode 종료 및 다시 시작
  • 장비,
  • 마지막으로 청소하고 다시 빌드하십시오.

Xcode가 iOS 5.0을 사용하도록 구성되어 있고 프로젝트에서 iOS 4.3을 사용하기 때문에 한 가지 더 수행했습니다.

  • 모든 프레임 워크를 제거하고 다시 추가하십시오.

질문은 시뮬레이터입니다. 장치가 아닙니다.
바이러스

3

다른 해결 방법 :

  • 앱에 새로운 식별자를 제공하십시오. com.foobar.myapp라고하는 경우 com.foobar.myapp01이라고합니다.

iPhone 시뮬레이터와 관련하여 실제로 실행되는 새로운 앱이므로 앱의 모든 데이터가 손실됩니다. 이것은 재부팅보다 더 성가 시거나 아닐 수 있습니다-목록에 추가하고 싶었습니다.


3

원인

이전에 실행 한 앱이 완전히 중지되기 전에 시뮬레이터에서 앱을 실행합니다.

수정

다시 실행하기 전에 중지 버튼이 다시 활성화 될 때까지 기다리십시오.

(Xcode 4.2.1을 사용하고 있습니다.이 문제는 OS X Lion으로 업그레이드 할 때 매우 자주 발생했습니다).


이 오류가 다시 발생했습니다. 나는 모든 것을 시도하고 마침내 iPad를 다시 시작했습니다.
5bars

2

앱을 삭제 한 후 휴대 전화를 재부팅 한 다음 다시 빌드하고 깨끗하게 다시 실행하면 해결되었습니다. 지금은 잘 작동합니다.

기묘한.


2

내 문제에 대해 재구성하거나 다시 설치할 필요가 없으며 iPhone의 경우 앱을 실행하려고 할 때 오류가 발생했습니다. 시뮬레이터가 잘 작동했습니다.

해결 방법 : 휴대 전화에서 앱을 삭제하고, 콜드 콜을 다시 시작하면 이제 모든 것이 정상입니다.


2

Lion의 Xcode 4.2.1로 많은 일이 생겼습니다. 4.3.2로 업데이트되었으며 더 이상 발생하지 않습니다. 그들이 고쳐서 다행입니다.


2

Mike Ash 재부팅이 필요없는 솔루션 (신을 축복합니다!)을 게시했습니다 . 그냥 실행 :

launchctl list|grep UIKitApplication|awk '{print $3}'|xargs launchctl remove

위의 명령은 시작된 모든 작업을 나열하고 이름에 UIKitApplication이있는 작업을 검색하고 (부적절하게 붙어있는 앱에 해당하는 작업 임) 이름을 추출하고 해당 작업을 제거하도록 시작을 지시합니다.


나는 이것을 테스트 할 많은 기회를 가졌다 (한숨). 때때로 그것은 작동하고 때로는 내 iPhone 또는 심지어 Mac을 재부팅해야합니다 (위의 명령은 "process not found"라고 표시합니다).
Jano

2

Xcode에서 중지 버튼을 누르기 전에 iPhone에서 앱을 강제 종료하여 발생한다고 생각합니다. Xcode에서 중지 버튼을 누르면 앱이 중단 된 경우 앱을 종료하는 데 시간이 더 걸립니다. 그러나 인내심을 가지면 결국 대부분 종료됩니다.


1

기능 또는 탭에 변수를 할당 할 수 있습니다. 기능이나 탭이 종료되면 할당 해제됩니다. 따라서 멤버 변수 또는 전역 변수로 선언해야합니다.


1

실행 대화 상자에서 "중지"버튼에 대한 신뢰를 중지 할 때까지 항상이 오류가 발생했습니다. 실행을 시도하기 전에 항상 툴바에서 중지를 했으므로 아직 좀비 프로세스가 발생하지 않았습니다.


0

오 마이-위와 다른 게시물에 나열된 모든 것을 시도했습니다. Xcode를 다시 설치하고 컴퓨터를 재부팅 한 다음 누락 된 파일을 모두 올바른 폴더에 복사했습니다. 결국 아이폰을 백업하고 지우고 복원하면 제대로 작동합니다!

나는 이것과 주변에서 읽은 원인이 무엇인지 내 아이폰 화이트의 연결을 끊은 것이 누출을 잡는 성능 도구로 실행 중이라고 생각합니다. 아니면 그런 것.

Aaaah, 큰 안도의 한숨.


0

최악의 조건 에서 iOS Simulater의 내용 재설정 및 설정 , 그리고 대부분의 경우 시뮬레이터와 함께 XCode를 종료하면 XCode4.6에서 자주 작동합니다.


0

제 경우에는 이런 종류의 문제에 한 번 직면했습니다.

  1. 시뮬레이터에서 앱을 삭제하십시오.
  2. 파생 된 데이터 폴더를 삭제하십시오.
  3. 제품 메뉴-정리를 선택하여 프로젝트에서 정리 조치를 수행하십시오.
  4. 시뮬레이터를 재설정하십시오.
  5. Xcode를 종료하십시오.
  6. 제대로 작동하면 지금 프로젝트를 실행 해보십시오. 그렇지 않으면 7 단계로 이동하십시오.
  7. 1에서 5까지의 모든 단계를 반복 한 다음 컴퓨터를 다시 시작하십시오.

대부분의 경우 6 단계에서 실행 중이었고 컴퓨터를 다시 시작해야했습니다.


0

이 오류는 이전 버전의 iOS 시뮬레이터에서 발생했습니다. 종료 된 다른 장치에서 작업의 이전 인스턴스가 새 인스턴스와 충돌 할 수 있기 때문입니다.

iOS 6.0은 부트 스트랩 서브 세트 사용을 도입했으며 iOS 7.0은 호스트 부트 스트랩 서버와 완전히 분리 된 전용 부트 스트랩 서버 (launchd_sim) 사용을 도입했기 때문에 이와 같은 문제가 발생하지 않아야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.