Nie można zarejestrować się na serwerze bootstrap

113

Właśnie zmieniłem kod w moim programie i otrzymałem ten błąd:

Nie można zarejestrować com.twojafirma.XXX na serwerze startowym. Błąd: nieznany kod błędu.

Zwykle oznacza to, że inna instancja tego procesu była już uruchomiona lub zawiesiła się w debugerze. Program odebrał sygnał: „SIGABRT”.

Próbowałem przywrócić program do wersji, która działała, zrestartowałem, uruchomiłem ponownie, opróżniłem pamięci podręczne i odbudowałem na wersjach, które działały wcześniej.

Każda pomoc będzie mile widziana.

MadProfit
źródło
Po wykonaniu wszystkich powyższych czynności. Wykonałem osobny program i ten program działał .... ???
MadProfit
Miałem ten problem wkrótce po użyciu instrumentów. Zastanawiam się, czy to jest powiązane.
Sam,
1
Ten problem często pojawia się u mnie i prawie zawsze występuje, gdy w połowie instalacji na siłę anuluję proces instalacji, zanim w aplikacji zostanie wywołane polecenie didFinishLaunching .... Od kilku lat staram się nigdy nie przerywać instalacji, dopóki nie osiągnie tego punktu, ponieważ często powoduje to powyższy problem. Xcode przejście z 3 na 4 i najnowsze wersje iOS lub nowy debugger nie zrobiły tutaj różnicy.
Jonny

Odpowiedzi:

116

Udało mi się to naprawić, odłączając iPada, wyłączając go i tworząc kopię zapasową, czyszcząc wszystkie pamięci podręczne i cele XCode oraz wykonując czystą kompilację. Używam XCode 3.5.4 i iOS 4.2.1 Mam nadzieję, że to komuś pomoże. -Mikrofon

AKTUALIZACJA: Ten sam problem z Xcode 4.3 i iOS5 - po prostu wyłącz i włącz urządzenie.

Rayfleck
źródło
2
Ponowne uruchomienie urządzenia było tym, co zadziałało dla mnie po wypróbowaniu wszystkiego innego.
noodl_es
Działał na moim iPhonie 4 dopiero po ponownym uruchomieniu urządzenia. (tak samo jak noodl_es). Czy możemy założyć, że „serwer bootstrap” jest czymś, co znajduje się na urządzeniu, a „prostym” sposobem rozwiązania problemów z nim jest ponowne uruchomienie urządzenia?
Jonny
6
@Sam - tak, myślę, że istnieją fałszywe procesy, które nie są dobrze oczyszczone. Jeśli chodzi o MadProfit, liczyłem na wątpliwy zaszczyt bycia jego pierwszą zaakceptowaną odpowiedzią :)
Rayfleck
25

Możesz chcieć killwszystkich Simulatorprocesów, które mogą powodować ten błąd.

Oto jedna linijka do zabicia ich wszystkich:

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

Lub bardziej zwięźle, jak @brianegge wspomina jako komentarz:

killall -9 Simulator
Pål Brattberg
źródło
Wkleiłem tę linię w Terminalu dosłownie i nie będzie działać
barfoon
2
Jaki błąd @barfoon? Jaki system operacyjny? Jeśli nie masz uruchomionego symulatora, po prostu otrzymasz kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec].
Pål Brattberg
@barfoon - prawdopodobnie dlatego, że nie masz żadnych procesów symulatora. Jeśli ocenisz "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... lub kill -l [sigspec]", nie otrzymasz żadnego wyniku, więc "kill -9 {puste}" zwraca błąd: kill: użycie: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
Aneil Mallavarapu,
Krótsza linia byłabykillall -9 Simulator
brianegge
1
Możesz także wypróbować Monitor aktywności, aby zabić cały proces, który chcesz, wszystko jest tam widoczne. Po prostu wpisz Monitor aktywności w Spotlight. Mam nadzieję, że ta pomoc.
iphonic
15

Moim rozwiązaniem było ponowne uruchomienie iPada, poczekaj chwilę i spróbuj ponownie.

theprof
źródło
14

Jeśli zawiesisz się podczas korzystania z symulatora, spójrz na ten wątek: Dziwny błąd podczas testowania symulatora

Ten test może Cię zainteresować, ponieważ powie Ci jak najszybciej, czy jedynym rozwiązaniem jest ponowne uruchomienie teraz, czy nie:

Otwórz terminal i uruchom polecenie: ps -Ael | grep Z. Jeśli dostaniesz dwa wpisy, jeden „(clang)”, a drugi nazwę Twojej aplikacji lub firmy, oznacza to, że masz połączenie - uruchom ponownie.

Jeśli jesteś programistą, wpisz krótki błąd i powiedz Apple, jak absolutnie irytujące jest ponowne uruchomienie, i wspomnij, że mogą pobrać ten błąd na „rdar: // 10401934”.

David H.
źródło
11

Otrzymałem ten sam problem, uruchamiając aplikację na iPhonie od Xcode. Wiadomość, którą otrzymałem, była taka sama jak powyżej:

Nie można zarejestrować xxx.com.company.appname na serwerze startowym. Zwykle oznacza to, że inna instancja tego procesu była już uruchomiona lub zawiesiła się w debugerze.

Próbowałem wielu rzeczy, aby rozwiązać problem, w tej kolejności, ale wszystko się nie udało:

  • wymuś zamknięcie aplikacji na iPhonie
  • wymuś zamknięcie, a następnie usunięcie aplikacji z iPhone'a
  • otwieranie i zamykanie projektu
  • sprzątanie projektu
  • ponowne uruchamianie XCode

W końcu zrestartowałem iPhone'a i problem zniknął, co prowadzi mnie do wniosku, że źródłem problemu jest zawieszony proces, którego Xcode nie może lub nie zabije. Jeśli uda mi się dokładnie odtworzyć to, co robiłem podczas mojej sesji debugowania, aby uzyskać ten dziwny stan, dodam tutaj kolejną notatkę.

Mark Chackerian
źródło
5

Otworzyłem raport o błędzie w Apple: https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/19/wo/WBbbbyopNFW8FFUuNSbk0w/10.66

Daj mi znać, jeśli nie możesz uzyskać do niego dostępu.

Podsumowanie: debugger XCode nie zwalnia portu serwera ładowania początkowego

Kroki do odtworzenia: Podczas debugowania aplikacji na iPhone'a iOS5 w symulatorze w Xcode 4.2 Build 4D5163b na Lion 10.7.2, awaria może czasami skutkować niemożnością uruchomienia buggera. Zamiast tego Xcode generuje ten błąd:

Nie można zarejestrować com.MyApp.MyApp na serwerze startowym. Błąd: nieznany kod błędu. Zwykle oznacza to, że inna instancja tego procesu była już uruchomiona lub zawiesiła się w debugerze. Program odebrał sygnał: „SIGABRT”.

Oczekiwane wyniki: Powinno być możliwe uruchomienie debugera po awarii.

Rzeczywiste wyniki: nie można uruchomić debugera. Jedynym sposobem, jaki odkryłem, aby ponownie uruchomić symulator, jest ponowne uruchomienie systemu Mac OS.

Regresja:

Uwagi: Wiele osób ma ten problem: iPhone - dziwny błąd podczas testowania na symulatorze Nie można zarejestrować się na serwerze bootstrap Błąd serwera startowego w Xcode IPHONE https://discussions.apple.com/message/10416765?messageID=10416765

Zamknięcie XCode i Symulatora (i upewnienie się, że ps -Al | egrep "Xcode | Simulator" nic nie zwraca) nie rozwiązuje problemu.

Uruchomienie „launchtl bslist | grep MyApp” ujawnia, że ​​com.MyApp jest nadal zarejestrowany na serwerze bootstrap:

$ launchctl bslist | grep MyApp
A  com.MyApp.MyApp.UIKit.migserver
A  com.MyApp.MyApp

Napisałem kod, aby znaleźć port i unieważnić go, ale to też się nie udaje:

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]);       
Aneil Mallavarapu
źródło
4

Mam ten sam problem z Xcode 4. Rozwiązaniem była zmiana schematu. Uruchom ustawiony na debugowanie, test ustawiony na debugowanie, profil ustawiony na wydanie, analiza ustawiona na debugowanie, archiwum ustawione na wydanie

zeiteisen
źródło
Ciekawe obejście. Mam ten irytujący problem na symulatorze iPada. Zmieniłem urządzenie docelowe na prawdziwe urządzenie, zamknąłem symulator iPada, a następnie ponownie uruchomiłem aplikację na symulatorze i zadziałało.
Thomas Desert
2

Ponowne uruchomienie komputera rozwiązało mój problem. Ten błąd wystąpił, gdy podłączyłem mojego nowego iPoda Touch do mojego Maca i jednocześnie uruchomiłem projekt w symulatorze.

ChenXin
źródło
2

Najłatwiej jest zmienić nazwę celu. Pamiętaj, aby zmienić ją z powrotem następnego dnia po ponownym uruchomieniu.

Kiko Seijo
źródło
To rzeczywiście najłatwiejszy sposób. Nie ma potrzeby ponownego uruchamiania. Dzięki!
pgpb.padilla
2

Podsumowując to wszystko.

Czasami pomaga kill -9 (identyfikator procesu) .
Czasami (jak wspomniano) launchctl list | grep UIKitApplication | grep "(nazwa / identyfikator twojej aplikacji)" | awk '{print $ 3}' | xargs launchctl remove works.

Ale jeśli jest to proces „zombie”, tylko ponowne uruchomienie rozwiąże problem.

Tymczasowym rozwiązaniem jest po prostu zmiana identyfikatora (element docelowy aplikacji IOS, karta Podsumowanie) na inny (np. „Com.mojafirma1.myapp” z „com.mojafirma.mojaaplikacja”), ale pamiętaj, aby zmienić go z powrotem po ponownym uruchomieniu i przed prześlij to.

(oczywiście stworzy to kolejną aplikację na symulatorze, ale myślę, że to najmniejszy z twoich problemów ...)

Niestety nie ma „łatwej drogi do wielkości” ... ;-)

Gik
źródło
1

Oto, jak myślę, że rozwiązałem ten „dziwny” błąd:

Nie można zarejestrować com.twojafirma.XXX na serwerze startowym. Błąd: nieznany kod błędu. Zwykle oznacza to, że inna instancja tego procesu była już uruchomiona lub zawiesiła się w debugerze. Program odebrał sygnał: „SIGABRT”.

(1) Wyczyść wszystkie pamięci podręczne, cele, nagłówki w Xcode i symulatorze. (2) Uruchom ponownie iPhone'a, gdy nie jest podłączony do komputera, i upewnij się, że żadna wersja programu, która spowodowała problemy, nie została na Twoim iPhonie. (3) Przywróć wszystkie poprzednie wersje programu, o których wiesz, że w danym momencie absolutnie działały. (4) Wyłącz komputer / laptop. (Musiałem to zrobić 4 razy.) Nie ma to dla mnie sensu. (5) Uruchom ponownie komputer i spróbuj uruchomić inny program, aby sprawdzić, czy nadal występuje błąd. Jeśli nie otrzymasz błędu w innym programie. (6) Skompiluj program, który spowodował błąd: (1) Najpierw z wcześniejszą wersją, która działała. A potem wersja, która spowodowała błąd. Oczywiście może być konieczne ponowne dodawanie kodu krok po kroku, aby upewnić się, że wiesz, jaki kod spowodował błąd.

MadProfit
źródło
4
To nie jest rozwiązanie problemu, to sposób na ponowną kompilację. Rozwiązaniem problemu byłoby nie uzyskanie tego błędu lub sposób na pozbycie się go bez konieczności ponownego uruchamiania komputera ...
Javier Soto
1

Zdarzyło mi się to, ponieważ inna aplikacja pochłaniała zasoby komputera. Wyszedłem z symulatora, zamknąłem aplikację, która zawiesiła mój komputer i zrestartowałem symulator i wtedy zadziałało. Błąd oznacza, że ​​poprzednio zabity proces nie mógł dotrzeć do końca kolejki i wstrzymuje bieżący.

Windson
źródło
1

Podano wiele dobrych odpowiedzi dotyczących rozwiązania problemu.

Odkryłem, że mogę odtworzyć ten błąd, tworząc punkt przerwania w moim kodzie, aby wstrzymać wykonanie. Następnie, jeśli naciśnę przycisk Stop, błąd pojawi się teraz, gdy spróbuję ponownie uruchomić kod. Wznowienie wykonywania przed naciśnięciem przycisku Stop pozwala zatem uniknąć tego problemu.

Mam nadzieję że to pomoże.

Chris
źródło
0

zamknięcie xcode, a następnie uruchomienie go i ponowne uruchomienie iPhone'a rozwiązało mój problem

Abolfoooud
źródło
0

Nie znalazłem lepszego rozwiązania niż wspomniane powyżej: zrestartuj iPhone'a. Wygląda na to, że demon, który łączy się z debugerem Xcode, nie został poprawnie zabity.

Możesz uniknąć tego zachowania ZAWSZE zatrzymując sesję debugowania za pomocą przycisku „Zatrzymaj” w Xcode i czekając na automatyczne zamknięcie aplikacji na iPhonie. Zawsze muszę uruchamiać ponownie, jeśli kliknę „Start” bez zatrzymywania się, lub kończąc za pomocą przycisku iPhone'a, czy coś w tym rodzaju. Mam nadzieję, że to pomoże

Alex
źródło
0

Sam napotkałem ten problem podczas oceny AppCode. Odkryłem, że XCode w jakiś sposób przyłączyło się do mojej aplikacji, gdy próbowałem dołączyć AppCode do mojej aplikacji. Po prostu zatrzymałem sesję debugowania XCode i działało zgodnie z oczekiwaniami. Mam nadzieję, że to komuś pomoże.

Steve Rukuts
źródło
0

Może to być spowodowane wystąpieniem aplikacji działającej w tle. Ten uproszczony proces działał dla mnie bez konieczności zamykania xCode lub wyłączania komputera.

  1. Zamknij symulator
  2. Zatrzymaj uruchamianie aplikacji w xCode.
  3. Otwórz monitor aktywności i wyszukaj proces działający z nazwą aplikacji .
  4. Zabij ten proces w Monitorze aktywności
  5. Odbuduj swój projekt i wszystko powinno być gotowe

W teorii rozwiązanie wiersza poleceń Pål powinno również działać. Wydaje się, że problem jest zdecydowanie spowodowany dodatkowym wystąpieniem aplikacji działającej w tle. Wygląda na to, że aplikacja nie zawsze jest poprawnie zabijana po każdym teście w symulatorze lub na urządzeniu. Po raz pierwszy zauważyłem to podczas częstego przeskakiwania między symulatorem a urządzeniem.

Jako środek zapobiegawczy, dobrą praktyką jest zawsze naciskanie przycisku stop w xCode po każdym teście.

negrelja
źródło
0

Bardzo ciekawe wyniki przy próbie ponownego uruchomienia komputera. Powiedział, i to nie jest żart, że 103 użytkowników „współdzieliło” system. Po ponownym uruchomieniu powróciłem do zwykłych czterech (mam program Time Machine dla wszystkich moich komputerów przechodzących przez ten komputer). Zatrzymałem problem, po prostu konfigurując aplikację, która monitoruje tę aktywność i nie pozwala dodatkowym użytkownikom „udostępniać” mojego komputera bez mojej zgody. To, co robi, to tworzenie okna za każdym razem, gdy ktoś chce uzyskać dostęp, i muszę nacisnąć „Zatwierdź”, zanim będzie mógł wejść. To nie działało poprawnie, dopóki nie wprowadziłem poniższych zmian.

  • Upewniłem się, że powie mi, kiedy ktoś przestanie się dzielić. Zawsze, gdy Xcode ma ten problem, wiem na długo, zanim zwróci błędy.

Jest to teraz przydatne do prawie wszystkiego, ale irytujące podczas wszelkiego rodzaju gier.

  • Potem napisał skrypt, który rozwiązaniu problemu przez, w zasadzie, czyszcząc Simulatorprocesy, które mogłyby możliwe powodować problemy.

Ta aplikacja będzie bardzo przydatna dla programistów, więc trochę ją "dopracowuję", a potem przechodzę do App Store. Kiedy dojdzie do tego punktu, opublikuję tutaj link do niego (będzie darmowy).

Justin
źródło
0

Okay, mam obejście problemu sprzętowego, który nie wymaga ponownego uruchamiania telefonu. Zakładam, że to zadziała również na symulatorze, ale nie próbowałem tego.

Wymuś ponowne uruchomienie aplikacji Springboard, zmieniając język. Ustawienia -> Ogólne -> Międzynarodowe -> Język.

Po prostu zmieniłem go na hiszpański, zaczekałem na ponowne uruchomienie Springboard, zmieniłem z powrotem na angielski i było dobrze.

Jason Harris
źródło
Zwróć uwagę, że to znowu mi się przydarzyło i moje obejście zadziałało. Myślę, że jest solidny!
Jason Harris
Próbowałem tego kilka razy od czasu opublikowania oryginalnego obejścia i było to dla mnie skuteczne. Większy wkład byłby zdecydowanie przydatny!
Jason Harris,
0

Dziś wieczorem mam ten sam problem

„Nie można zarejestrować com.xxx.yyy na serwerze startowym. Błąd: nieznany kod błędu.

Zwykle oznacza to, że inna instancja tego procesu była już uruchomiona lub zawiesiła się w debugerze. (Lldb) "

i zostałem rozwiązany

1. Po prostu odłącz moje urządzenie (dla mnie jest to iPhone) od komputera Xcode / Mac

2. Uruchom ponownie urządzenie (mój iPhone)

3. Usunięto wcześniej zainstalowaną / uszkodzoną aplikację

4. Ponownie podłącz urządzenie i uruchom wyjątek

To dobrze działa

Mam nadzieję, że to komuś tam pomoże.

swiftBoy
źródło