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