Apple에서 버그 보고서를 열었습니다 : https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/19/wo/WBbbbyopNFW8FFUuNSbk0w/10.66
액세스 할 수없는 경우 알려주십시오.
요약 : XCode 디버거가 부트 스트랩 서버 포트를 해제하지 않습니다.
재현 단계 :
Lion 10.7.2에서 Xcode 4.2 Build 4D5163b의 시뮬레이터에서 iPhone iOS5 앱을 디버깅하는 동안 충돌이 발생하여 버그를 시작할 수없는 경우가 있습니다. 대신 Xcode는 다음 오류를 생성합니다.
부트 스트랩 서버에 com.MyApp.MyApp을 등록 할 수 없습니다. 오류 : 알 수없는 오류 코드입니다. 이것은 일반적으로이 프로세스의 다른 인스턴스가 이미 실행 중이거나 디버거에서 중단되었음을 의미합니다. 프로그램이 "SIGABRT"신호를 수신했습니다.
예상 결과 :
충돌 후 디버거를 시작할 수 있어야합니다.
실제 결과 :
디버거를 시작할 수 없습니다. 시뮬레이터를 다시 작동시킬 수있는 유일한 방법은 Mac OS를 다시 시작하는 것입니다.
회귀 :
참고 :
많은 사람들이이 문제를 겪고 있습니다.
iPhone-시뮬레이터에서 테스트 할 때 이상한 오류가 발생
했습니다. Xcode IPHONE에서 부트 스트랩 서버
부트 스트랩 서버 오류에
등록 할 수 없습니다. https://discussions.apple.com/message/10416765?messageID=10416765
XCode와 시뮬레이터를 종료 (& ps -Al | egrep "Xcode | Simulator"는 아무것도 반환하지 않음)는 문제에 도움이되지 않습니다.
"launchtl bslist | grep MyApp"을 실행하면 com.MyApp이 여전히 부트 스트랩 서버에 등록되어 있음을 알 수 있습니다.
$ launchctl bslist | grep MyApp
A com.MyApp.MyApp.UIKit.migserver
A com.MyApp.MyApp
포트를 찾아 무효화하는 코드를 작성했지만 이것도 실패합니다.
NSMachBootstrapServer *bsserver = [NSMachBootstrapServer sharedInstance];
NSMachPort *port = (NSMachPort *)[bsserver portForName:@"com.MyApp.MyApp"];
[port removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:<#(NSString *)#>
NSLog(@"port = %@",port);
NSLog(@"port.isValid=%d",[port isValid]);
[port invalidate];
NSLog(@"port.isValid=%d",[port isValid]);