Я відкрив звіт про помилку з Apple: https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/19/wo/WBbbbyopNFW8FFUuNSbk0w/10.66
Будь ласка, дайте мені знати, якщо ви не можете отримати доступ до нього.
Короткий зміст: Відладчик XCode не випускає порт сервера завантажувача
Крок до відтворення:
Під час налагодження додатка iPhone iOS5 в тренажері в Xcode 4.2 Build 4D5163b на Lion 10.7.2, збиток іноді може призвести до неможливості запустити помилку. Натомість Xcode видає цю помилку:
Не вдалося зареєструвати com.MyApp.MyApp на сервері завантаження. Помилка: невідомий код помилки. Це, як правило, означає, що інший екземпляр цього процесу вже запущений або висів у відладчику. Програма отримала сигнал: "SIGABRT".
Очікувані результати.
Потрібно мати можливість запустити налагодження після збоїв.
Фактичні результати:
Не вдається запустити налагоджувач. Єдиний спосіб, коли я виявив змусити тренажер знову працювати, - це перезапустити Mac OS.
Регресія:
Примітки: У
багатьох людей виникає ця проблема:
iPhone - дивна помилка під час тестування на тренажері
Не вдалося зареєструвати
помилку
сервера завантажувального сервера Помилка сервера завантаження в Xcode IPHONE https://discussions.apple.com/message/10416765?messageID=10416765
Вихід з XCode та тренажера (& забезпечення ps -Al | egrep "Xcode | Simulator" нічого не повертає) не допомагає проблемі.
Запуск "starttl 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]);