Не удалось зарегистрироваться на сервере начальной загрузки

113

Я просто изменил код в своей программе и получил такую ​​ошибку:

Не удалось зарегистрировать com.yourcompany.XXX на сервере начальной загрузки. Ошибка: неизвестный код ошибки.

Обычно это означает, что другой экземпляр этого процесса уже был запущен или завис в отладчике. Программа получила сигнал: «SIGABRT».

Я попытался восстановить свою программу до версии, которая работала, перезагружалась, перезапускалась, очищала кеши и перестраивала версии, которые работали раньше.

Любая помощь будет оценена.

MadProfit
источник
Сделав все вышеперечисленное. Я выполнил отдельную программу, и эта программа работала .... ???
MadProfit
У меня возникла эта проблема вскоре после использования инструментов. Интересно, связано ли это.
Сэм,
1
Эта проблема часто возникает у меня, и это почти всегда происходит, когда я в середине установки принудительно отменяю процесс установки до того, как в приложении вызывается didFinishLaunching ... В течение нескольких лет я стараюсь никогда не прерывать установку, пока она не достигнет этой точки, потому что это часто вызывает вышеуказанную проблему. Переход Xcode с 3 на 4 и последние версии iOS или новый отладчик здесь не повлияли.
Джонни

Ответы:

116

Я смог оправиться от этого, отключив iPad, выключив его и снова включив, очистив все кеши и целевые объекты XCode и выполнив чистую сборку. Я использую XCode 3.5.4 и iOS 4.2.1. Надеюсь, это кому-то поможет. -Майк

ОБНОВЛЕНИЕ: та же проблема с Xcode 4.3 и iOS5 - просто выключите и снова включите устройство.

Rayfleck
источник
2
После того, как я попробовал все остальное, у меня сработала перезагрузка устройства.
noodl_es
На моем iPhone 4 заработало только после перезагрузки устройства. (так же, как noodl_es). Можем ли мы предположить, что «сервер начальной загрузки» - это что-то, что находится на устройстве, и, таким образом, «простой» способ решить проблемы с ним - это перезагрузить устройство?
Джонни
6
@Sam - да, я думаю, что есть ложные процессы, которые плохо очищаются. Что касается MadProfit, я надеялся на сомнительную честь быть его первым принятым ответом :)
Rayfleck
25

Вы можете пожелать killвсем Simulatorпроцессам, которые также могут вызвать эту ошибку.

Вот краткая фраза, чтобы убить их всех:

kill -9 `ps ax | grep Simulator | grep -v grep | awk '{print $1}'` 

Или более кратко, например, @brianegge упоминает в качестве комментария:

killall -9 Simulator
Пол Браттберг
источник
Я вставил эту строку в Терминал дословно, и она не запускается
barfoon
2
Какая ошибка @barfoon? Какая ОС? Если у вас не запущен Симулятор, вы просто получите kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec].
Пол Браттберг,
@barfoon - вероятно, потому что у вас нет процессов симулятора. Если вы оцените "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... или kill -l [sigspec]", вы не получите результата, поэтому "kill -9 {empty}" вернет ошибку: kill: использование: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
Анейл Маллаварапу 01
Более короткая линия была быkillall -9 Simulator
brianegge
1
Вы также можете попробовать Activity Monitor, чтобы убить весь процесс, который вы хотите, чтобы все было видно там. Просто введите Activity Monitor в Spotlight .. Надеюсь на эту помощь.
iphonic
15

Мое решение заключалось в том, чтобы перезапустить ipad, подождать немного и повторить попытку.

проф
источник
14

Если у вас возникло зависание при использовании симулятора, посмотрите эту ветку: Странная ошибка при тестировании симулятора

Этот тест может вас заинтересовать, поскольку он скажет вам как можно скорее, если единственное решение - перезагрузить компьютер сейчас или нет:

Открыть терминал и выполните следующую команду: ps -Ael | grep Z. Если вы получили две записи, одну «(лязг)», а другую - название вашего приложения или компании, значит, все в порядке - перезагрузитесь.

Если вы разработчик, укажите короткую ошибку и расскажите Apple, как сильно раздражает необходимость перезагрузки, и укажите, что они могут дублировать эту ошибку на «rdar: // 10401934».

Дэвид Х
источник
11

У меня возникла та же проблема, когда я запустил приложение на iPhone от Xcode. Сообщение, которое я получил, было таким же, как указано выше:

Не удалось зарегистрировать xxx.com.company.appname на сервере начальной загрузки. Обычно это означает, что другой экземпляр этого процесса уже был запущен или завис в отладчике.

Я пробовал много вещей, чтобы исправить проблему, в этом порядке, но все безуспешно:

  • принудительно закрыть приложение на iPhone
  • принудительный выход, а затем удаление приложения на iPhone
  • открытие и закрытие проекта
  • очистка проекта
  • перезапуск XCode

В конце концов, я перезагрузил iPhone, и проблема исчезла, что наводит меня на мысль, что источником проблемы является зависший процесс, который Xcode не может или не может убить. Если я смогу точно воспроизвести то, что делал во время сеанса отладки, чтобы получить это странное состояние, я добавлю сюда еще одно примечание.

Марк Чакериан
источник
5

Я открыл отчет об ошибке в 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 и Simulator (и обеспечение того, чтобы 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]);       
Анейл Маллаварапу
источник
4

У меня такая же проблема с Xcode 4. Решением было изменить схему. Для запуска задано значение «Отладка», для теста задано значение «Отладка», для профиля задано значение «Выпуск», для анализа задано значение «Отладка», для архива - «Выпуск»

Zeiteisen
источник
Интересный обходной путь. У меня неприятная проблема с симулятором iPad. Я изменил целевое устройство на реальное устройство, закрыл симулятор iPad, затем повторно запустил приложение на симуляторе, и оно сработало.
Thomas Desert
2

Перезагрузка компьютера решила мою проблему. Эта ошибка произошла, когда я подключил свой новый iPod Touch к своему Mac и одновременно запустил свой проект в симуляторе.

ChenXin
источник
2

Самый простой способ изменить целевое имя. Не забудьте вернуть его на следующий день после перезапуска.

Кико Сейджо
источник
Это действительно самый простой способ. Нет необходимости перезагружать. Спасибо!
pgpb.padilla
2

Подводя итог всему этому.

Иногда помогает kill -9 (идентификатор процесса) .
Иногда (как указано) launchctl list | grep UIKitApplication | grep "(имя / идентификатор вашего приложения)" | awk '{print $ 3}' | xargs launchctl remove работает.

Но если это «зомби» процесс, только перезагрузка решит вашу проблему.

Временное решение - просто изменить идентификатор (цель приложения IOS, вкладка «Сводка») на что-то другое (например, «com.mycompany1.myapp» из «com.mycompany.myapp»), но не забудьте изменить его обратно после перезагрузки и перед вами. отправить это.

(конечно, это создаст другое приложение на симуляторе, но я думаю, это наименьшая из ваших проблем ....)

К сожалению, не существует "простого пути к величию" ... ;-)

Гик
источник
1

Вот как я решил эту «странную» ошибку:

Не удалось зарегистрировать com.yourcompany.XXX на сервере начальной загрузки. Ошибка: неизвестный код ошибки. Обычно это означает, что другой экземпляр этого процесса уже был запущен или завис в отладчике. Программа получила сигнал: «SIGABRT».

(1) Очистите все кеши, цели, заголовки как в Xcode, так и в симуляторе. (2) Перезагрузите iPhone, когда он не подключен к компьютеру, и убедитесь, что на вашем iPhone не осталось версий программы, из-за которой возникли проблемы. (3) Восстановите любую предыдущую версию вашей программы, которая, как вы знаете, полностью работала в определенный момент времени. (4) Выключите компьютер / ноутбук. (Мне нужно было сделать это 4 раза.) Для меня это бессмысленно. (5) Перезагрузите компьютер и попробуйте запустить другую программу, чтобы убедиться, что ошибка сохраняется. Если вы не получили ошибку в другой программе. (6) Скомпилируйте программу, которая выдала ошибку: (1) Сначала используйте более раннюю работающую версию. А затем версия, в которой возникла ошибка. Естественно, вам, возможно, придется повторно добавлять код на поэтапной основе, чтобы убедиться, что вы знаете, какой код вызвал ошибку.

MadProfit
источник
4
Это не решение проблемы, это способ снова скомпилировать его. Решением проблемы было бы отсутствие этой ошибки или способ избавиться от нее без необходимости перезагружать компьютер ...
Хавьер Сото,
1

Это случилось со мной, потому что другое приложение потребляло ресурсы компьютера. Я выхожу из симулятора, закрываю приложение, которое зависало на моем компьютере, и перезапускал симулятор, и тогда он работал. Ошибка означает, что ранее убитый процесс не смог достичь конца очереди и задерживает текущий.

Windson
источник
1

Было предоставлено множество хороших ответов для решения проблемы.

Я обнаружил, что могу воссоздать эту ошибку, создав точку останова в моем коде, чтобы выполнение приостанавливалось. Затем, если я нажму кнопку «Стоп», ошибка появится, когда я снова попытаюсь запустить код. Таким образом, возобновление выполнения до нажатия кнопки «Стоп» позволяет избежать этой проблемы.

Надеюсь это поможет.

Крис
источник
0

закрытие xcode, затем его запуск и перезапуск моего iphone решил мою проблему

Abolfoooud
источник
0

Я не нашел лучшего решения, чем упомянуто выше: перезагрузить iPhone. Похоже, что демон, который подключается к отладчику Xcode, не убит должным образом.

Вы можете избежать этого поведения ВСЕГДА, останавливая сеанс отладки с помощью кнопки «Стоп» в Xcode и ожидая автоматического выхода приложения на iPhone. Мне всегда приходится перезагружаться, если я нажимаю «Пуск», не останавливаясь, или выхожу с помощью кнопки iPhone, или что-то в этом роде. Надеюсь, поможет

Alex
источник
0

Я сам столкнулся с этой проблемой только сейчас, оценивая AppCode. Я обнаружил, что XCode каким-то образом прикрепился к моему приложению, когда я пытался прикрепить AppCode к моему приложению. Я просто остановил сеанс отладки XCode, и он работал, как ожидалось. Надеюсь, это кому-нибудь поможет.

Стив Рукутс
источник
0

Это может быть вызвано тем, что экземпляр вашего приложения работает в фоновом режиме. Этот упрощенный процесс сработал для меня, даже не закрывая xCode или выключая мой компьютер.

  1. Закрыть симулятор
  2. Остановите запуск приложения в xCode.
  3. Откройте монитор активности и найдите процесс, запущенный с вашим приложением NAME .
  4. Убейте этот процесс в Activity Monitor
  5. Перестройте свой проект, и все будет готово

Теоретически решение командной строки Пола также должно работать. Проблема определенно вызвана дополнительным экземпляром приложения, работающим в фоновом режиме. Кажется, что приложение не всегда корректно завершается после каждого теста в симуляторе или на устройстве. Я впервые заметил это при частом переключении между симулятором и устройством.

В качестве профилактической меры рекомендуется всегда нажимать кнопку остановки в xCode после каждого теста.

негреля
источник
0

Очень интересные результаты при попытке перезагрузить компьютер. Там сказано, и это не шутка, что 103 пользователя «делят» систему. Когда я перезапустился, он вернулся к обычным четырем (у меня есть материал Time Machine для всех моих компьютеров, проходящих через этот компьютер). Я решил проблему, просто установив приложение, которое отслеживает эту активность и не позволяет другим пользователям «делиться» моим компьютером без моего разрешения. Что он делает, так это создает окно каждый раз, когда кому-то нужен доступ, и я должен нажимать «Утвердить», прежде чем он сможет войти. Это не работало должным образом, пока я не внес изменения ниже.

  • Я был уверен, что он скажет мне, когда кто-нибудь перестанет делиться. Всякий раз, когда у Xcode возникает эта проблема, я знаю задолго до того, как он вернет ошибки.

Теперь это полезно почти для всего, но раздражает во время любых игр.

  • Затем я написал сценарий , который зафиксировал проблему, в основном, очищая Simulatorпроцессы , которые могут возможно вызвать проблемы.

Это приложение будет очень полезно для разработчиков, поэтому я немного его «полирую», потом перейдет в App Store. Когда дойдет до этого момента, я размещу ссылку на него здесь (это будет бесплатно).

Джастин
источник
0

Хорошо, у меня есть способ решения аппаратной проблемы, который не требует перезагрузки телефона. Я предполагаю, что это также будет работать на симуляторе, но я не пробовал.

Заставьте Springboard перезапустить, изменив язык. Настройки -> Общие -> Международный -> Язык.

Я просто изменил его на испанский, дождался перезапуска Springboard, снова вернул его на английский, и все готово.

Джейсон Харрис
источник
Обратите внимание, что это снова случилось со мной, и мой обходной путь сработал. Думаю солидно!
Джейсон Харрис
Я пробовал это довольно много раз с тех пор, как опубликовал исходное решение, и оно оказалось для меня эффективным. Больше информации определенно было бы полезно!
Джейсон Харрис,
0

Сегодня вечером я получил ту же проблему, говоря

«Не удалось зарегистрировать com.xxx.yyy на сервере начальной загрузки. Ошибка: неизвестный код ошибки.

Обычно это означает, что другой экземпляр этого процесса уже был запущен или завис в отладчике. (Lldb) "

и я решил

1. Просто отключите мое устройство (для меня это iPhone) от машины Xcode / Mac.

2. Перезагрузите устройство (мой iPhone).

3. Удалено ранее установленное / поврежденное приложение

4. Снова подключили устройство и запустили исключение.

Это работает хорошо

Надеюсь, это поможет кому-то там.

swiftBoy
источник