Impossible de s'inscrire auprès du serveur d'amorçage

113

Je viens de changer du code dans mon programme et j'ai cette erreur:

Impossible d'enregistrer com.yourcompany.XXX avec le serveur d'amorçage. Erreur: code d'erreur inconnu.

Cela signifie généralement qu'une autre instance de ce processus était déjà en cours d'exécution ou est bloquée dans le signal de débogage. Programme reçu: «SIGABRT».

J'ai essayé de restaurer mon programme vers une version qui fonctionnait, redémarré, redémarré, vider les caches et reconstruire sur des versions qui fonctionnaient même auparavant.

Toute aide serait appréciée.

MadProfit
la source
Après avoir fait tout ce qui précède. J'ai exécuté un programme séparé et ce programme a fonctionné .... ???
MadProfit
J'ai eu ce problème peu de temps après avoir utilisé des instruments. Je me demande si c'est lié.
Sam
duplication possible de l' iPhone - erreur étrange lors du test sur simulateur
chown
1
Ce problème me revient souvent et il se produit presque toujours lorsque j'annule de force le processus d'installation, avant que didFinishLaunching ... ne soit appelé dans l'application. Depuis quelques années, j'essaie de ne jamais casser une installation tant qu'elle n'a pas atteint ce point car cela cause souvent le problème ci-dessus. Xcode passant de 3 à 4 et les dernières versions iOS ou le nouveau débogueur n'ont pas fait de différence ici.
Jonny

Réponses:

116

J'ai pu m'en remettre en débranchant l'iPad, en le mettant hors tension et en le sauvegardant, en effaçant tous les caches et cibles XCode, et en effectuant une nouvelle compilation. J'utilise XCode 3.5.4 et iOS 4.2.1 J'espère que cela aide quelqu'un. -Mike

MISE À JOUR: Même problème avec Xcode 4.3 et iOS5 - il suffit de redémarrer l'appareil.

Rayfleck
la source
2
Le redémarrage de l'appareil a fonctionné pour moi après avoir essayé tout le reste.
noodl_es
Fonctionne pour mon iPhone 4 uniquement après le redémarrage de l'appareil. (identique à noodl_es). Pouvons-nous supposer que le "serveur d'amorçage" est quelque chose résidant sur le périphérique, et un moyen "simple" de résoudre les problèmes avec lui est donc de redémarrer le périphérique?
Jonny
6
@Sam - oui, je pense qu'il y a des processus fallacieux qui ne sont pas bien nettoyés. Quant à MadProfit, j'espérais l'honneur douteux d'être sa première réponse acceptée :)
Rayfleck
25

Vous pourriez souhaiter à killtous les Simulatorprocessus, qui peuvent également provoquer cette erreur.

Voici une ligne pour tous les tuer:

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

Ou plus concis, comme le mentionne @brianegge en commentaire:

killall -9 Simulator
Pål Brattberg
la source
J'ai collé cette ligne dans le terminal mot pour mot et elle ne fonctionnera pas
barfoon
2
Quelle erreur @barfoon? Quel OS? Si vous n'avez pas Simulator en cours d'exécution, vous obtiendrez simplement kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec].
Pål Brattberg
@barfoon - probablement parce que vous n'avez pas de processus de simulation. Si vous évaluez "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... ou kill -l [sigspec]", vous n'obtenez aucun résultat, donc "kill -9 {empty}" renvoie une erreur: kill: utilisation: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... ou kill -l [sigspec]
Aneil Mallavarapu
Une ligne plus courte seraitkillall -9 Simulator
brianegge
1
Vous pouvez également essayer Activity Monitor pour tuer tout le processus que vous souhaitez, tout est visible ici. Tapez simplement Moniteur d'activité dans Spotlight .. J'espère que cette aide.
iphonic
15

Ma solution était de redémarrer l'ipad, d'attendre un moment et de réessayer.

leprof
la source
14

Si vous obtenez le blocage lors de l'utilisation du simulateur, regardez ce fil: Erreur étrange lors du test du simulateur

Vous pouvez trouver ce test intéressant, car il vous dira DÈS QUE POSSIBLE si la seule solution est de redémarrer maintenant ou non:

Ouvrez Terminal et exécutez la commande suivante : ps -Ael | grep Z. Si vous obtenez deux entrées, l'une "(clang)" et l'autre le nom de votre application ou de votre entreprise, vous êtes arrêté - redémarrez.

Si vous êtes un développeur, entrez un petit bogue et dites à Apple à quel point le redémarrage est absolument ennuyeux, et mentionnez qu'ils peuvent dupliquer ce bogue en "rdar: // 10401934".

David H
la source
11

J'ai reçu le même problème, exécutant une application sur un iPhone à partir de Xcode. Le message que je recevais était le même que ci-dessus:

Impossible d'enregistrer xxx.com.company.appname avec le serveur d'amorçage. Cela signifie généralement qu'une autre instance de ce processus était déjà en cours d'exécution ou est bloquée dans le débogueur.

J'ai essayé de nombreuses choses pour résoudre le problème, dans cet ordre, toutes ont échoué:

  • forcer la fermeture de l'application sur l'iPhone
  • force de quitter puis de supprimer l'application l'iPhone
  • ouverture et fermeture du projet
  • nettoyage du projet
  • redémarrage de XCode

Finalement, j'ai redémarré l'iPhone et le problème a disparu, ce qui me porte à penser que la source du problème est un processus bloqué que Xcode ne peut pas ou ne veut pas tuer. Si je suis capable de reproduire exactement ce que je faisais pendant ma session de débogage pour obtenir cet état étrange, j'ajouterai une autre note ici.

Mark Chackerian
la source
5

J'ai ouvert un rapport de bogue avec Apple: https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/19/wo/WBbbbyopNFW8FFUuNSbk0w/10.66

S'il vous plaît laissez-moi savoir si vous ne pouvez pas y accéder.

Résumé: le débogueur XCode ne libère pas le port du serveur d'amorçage

Étapes à suivre pour reproduire: Lors du débogage d'une application iPhone iOS5 dans le simulateur dans Xcode 4.2 Build 4D5163b sur Lion 10.7.2, un crash peut parfois empêcher le démarrage du bugger. Au lieu de cela, Xcode produit cette erreur:

Impossible d'enregistrer com.MyApp.MyApp auprès du serveur d'amorçage. Erreur: code d'erreur inconnu. Cela signifie généralement qu'une autre instance de ce processus était déjà en cours d'exécution ou est bloquée dans le signal de débogage. Programme reçu: «SIGABRT».

Résultats attendus: devrait pouvoir démarrer le débogueur après un crash.

Résultats réels: impossible de démarrer le débogueur. Le seul moyen que j'ai découvert pour faire à nouveau fonctionner le simulateur est de redémarrer Mac OS.

Régression:

Remarques: Beaucoup de gens ont ce problème: iPhone - erreur étrange lors du test sur le simulateur Impossible de s'enregistrer avec le serveur de démarrage Erreur du serveur de démarrage du serveur dans Xcode IPHONE https://discussions.apple.com/message/10416765?messageID=10416765

Quitter XCode et le simulateur (et s'assurer que ps -Al | egrep "Xcode | Simulator" ne renvoie rien) n'aide pas le problème.

L'exécution de "launchtl bslist | grep MyApp" révèle que com.MyApp est toujours enregistré auprès du serveur d'amorçage:

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

J'ai écrit du code pour trouver le port et l'invalider, mais cela échoue également:

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
la source
4

J'ai eu le même problème avec Xcode 4. La solution était de changer le schéma. Exécuter défini sur Debug, Test défini sur Debug, Profil défini sur Release, Analyser défini sur Debug, Archive défini sur Release

Zeiteisen
la source
Solution de contournement intéressante. J'ai ce problème ennuyeux sur le simulateur iPad. J'ai changé la cible de l'appareil en appareil réel, fermé le simulateur iPad, puis réexécuté l'application sur le simulateur, et cela a fonctionné.
Thomas Desert
2

Le redémarrage de mon ordinateur a résolu mon problème. Cette erreur s'est produite lorsque j'ai connecté mon nouvel iPod Touch à mon mac et exécuté mon projet dans un simulateur en même temps.

ChenXin
la source
2

Le moyen le plus simple est de changer le nom de la cible, rappelez-vous de le changer le lendemain après un redémarrage.

Kiko Seijo
la source
C'est en effet le moyen le plus simple. Pas besoin de redémarrer. Merci!
pgpb.padilla
2

Pour tout résumer.

Parfois, kill -9 (l'identifiant du processus) est utile.
Parfois (comme indiqué) liste launchctl | grep UIKitApplication | grep "(nom / identifiant de votre application)" | awk '{imprimer $ 3}' | xargs launchctl supprimer fonctionne.

Mais si c'est un processus "zombie", seul un redémarrage résoudra votre problème.

Une solution temporaire consiste simplement à changer l'identifiant (Cible d'application IOS, onglet Résumé) en autre chose (comme "com.mycompany1.myapp" de "com.mycompany.myapp") mais n'oubliez pas de le modifier après le redémarrage et avant soumet le.

(bien sûr, cela créera une autre application sur le simulateur, mais je suppose que c'est le moindre de vos problèmes ....)

Malheureusement, il n'y a pas de "moyen facile d'atteindre la grandeur" ... ;-)

Gik
la source
1

Voici comment je pense avoir résolu cette erreur `` étrange '':

Impossible d'enregistrer com.yourcompany.XXX avec le serveur d'amorçage. Erreur: code d'erreur inconnu. Cela signifie généralement qu'une autre instance de ce processus était déjà en cours d'exécution ou est bloquée dans le signal de débogage. Programme reçu: «SIGABRT».

(1) Nettoyez tous les caches, cibles, en-têtes sur Xcode et le simulateur. (2) Redémarrez votre iPhone lorsqu'il n'est pas connecté à l'ordinateur et assurez-vous qu'aucune version du programme qui vous a posé des problèmes n'est laissée sur votre iPhone. (3) Restaurez toute version précédente de votre programme dont vous savez qu'elle a fonctionné à un moment donné. (4) Arrêtez votre ordinateur / ordinateur portable. (J'avais besoin de le faire 4 fois.) Cela n'a aucun sens pour moi. (5) Redémarrez votre machine et essayez d'exécuter un programme différent pour voir si vous obtenez toujours l'erreur. Si vous n'obtenez pas l'erreur sur un autre programme. (6) Compilez le programme qui vous a donné l'erreur: (1) D'abord avec une version antérieure qui a fonctionné. Et puis, la version qui vous a donné l'erreur. Naturellement, vous devrez peut-être rajouter du code par étapes pour vous assurer que vous savez quel code a causé l'erreur.

MadProfit
la source
4
Ce n'est pas une solution au problème, c'est un moyen de le faire recompiler. Résoudre le problème serait de ne pas obtenir cette erreur, ou un moyen de s'en débarrasser sans avoir besoin de redémarrer l'ordinateur ...
Javier Soto
1

Cela m'est arrivé parce qu'une autre application consommait les ressources de l'ordinateur. J'ai quitté le simulateur, quitté l'application qui suspendait mon ordinateur et redémarré le simulateur, et cela a fonctionné ensuite. L'erreur signifie qu'un processus précédemment tué n'a pas pu atteindre la fin de la file d'attente et retient celui en cours.

Windson
la source
1

Beaucoup de bonnes réponses ont été fournies pour résoudre le problème.

J'ai constaté que je pouvais recréer ce bogue en créant un point d'arrêt dans mon code afin que l'exécution s'interrompe. Ensuite, si j'appuie sur le bouton d'arrêt, le bogue apparaîtra maintenant lorsque j'essayerai d'exécuter à nouveau le code. La reprise de l'exécution avant d'appuyer sur le bouton d'arrêt évite donc ce problème.

J'espère que cela t'aides.

Chris
la source
0

fermer xcode puis le démarrer et redémarrer mon iphone a résolu mon problème

Abolfoooud
la source
0

Je n'ai pas trouvé de meilleure solution que celle mentionnée ci-dessus: redémarrez l'iPhone. Il semble qu'il existe un démon qui se connecte au débogueur Xcode qui n'a pas été correctement tué.

Vous pouvez éviter ce comportement en arrêtant TOUJOURS la session de débogage via le bouton "Arrêter" dans Xcode et en attendant que l'application se ferme automatiquement sur l'iPhone. Je dois toujours redémarrer si je clique sur "Démarrer" sans m'arrêter d'abord, ou si je quitte avec le bouton de l'iPhone, ou quelque chose comme ça. J'espère que ça aide

Alex
la source
0

J'ai rencontré ce problème moi-même tout à l'heure en évaluant AppCode. J'ai découvert que XCode s'était attaché d'une manière ou d'une autre à mon application pendant que j'essayais d'attacher AppCode à mon application. J'ai simplement arrêté la session de débogage XCode et cela a fonctionné comme prévu. J'espère que cela aidera quelqu'un.

Steve Rukuts
la source
0

Cela peut être dû à une instance de votre application exécutée en arrière-plan. Ce processus simplifié a fonctionné pour moi sans même avoir à fermer xCode ou à arrêter mon ordinateur.

  1. Fermer le simulateur
  2. Arrêtez l'application de s'exécuter dans xCode.
  3. Ouvrez le moniteur d'activité et recherchez un processus en cours d' exécution avec votre application NAME .
  4. Tuez ce processus dans le moniteur d'activité
  5. Reconstruisez votre projet et vous devriez être prêt

En théorie, la solution de ligne de commande de Pål devrait également fonctionner. Le problème semble définitivement être causé par une instance supplémentaire de l'application exécutée en arrière-plan. L'application ne semble pas toujours être correctement tuée après chaque test dans le simulateur ou sur l'appareil. J'ai remarqué cela pour la première fois en sautant fréquemment entre le simulateur et un appareil.

À titre préventif, il est recommandé de toujours appuyer sur le bouton d'arrêt dans xCode après chaque test.

negrelja
la source
0

Résultats très intéressants en essayant de redémarrer mon ordinateur. Il a dit, et ce n'est pas une blague, que 103 utilisateurs «partageaient» le système. Quand j'ai redémarré, il revient aux quatre habituels (j'ai des trucs Time Machine pour tous mes ordinateurs passant par cet ordinateur). J'ai arrêté le problème en configurant simplement une application qui surveille cette activité et n'autorise pas d'autres utilisateurs à «partager» mon ordinateur sans ma permission. Ce qu'il fait, c'est créer une fenêtre chaque fois que quelqu'un veut accéder, et je dois appuyer sur "Approuver" avant qu'ils puissent entrer. Cela ne fonctionnait pas correctement jusqu'à ce que j'aie apporté les modifications ci-dessous.

  • Je me suis assuré qu'il me dirait quand quelqu'un arrêterait de partager. Chaque fois que Xcode a ce problème, je sais bien avant qu'il ne renvoie les erreurs.

C'est maintenant utile pour presque tout, mais ennuyeux pendant les jeux de toute nature.

  • J'ai alors écrit un script qui a résolu le problème par, au fond, la compensation des Simulatorprocessus qui pourraient peut causer des problèmes.

Cette application sera très utile pour les développeurs, donc je la "peaufine" un peu, puis c'est parti pour le App Store. Quand j'arriverai à ce point, je posterai un lien vers celui-ci ici (ce sera gratuit).

Justin
la source
0

D'accord, j'ai une solution de contournement pour le problème matériel qui n'implique pas le redémarrage du téléphone. Je suppose que cela fonctionnera également sur le simulateur mais je ne l'ai pas essayé.

Forcer Springboard à se relancer en changeant la langue. Paramètres -> Général -> International -> Langue.

Je viens de le changer en espagnol, j'ai attendu la relance de Springboard, je l'ai changé en anglais et j'étais prêt à partir.

Jason Harris
la source
Notez que cela m'est arrivé à nouveau et que ma solution de contournement a fonctionné. Je pense que c'est solide!
Jason Harris
J'ai essayé cela plusieurs fois depuis la publication de la solution de contournement originale et cela a été efficace pour moi. Plus d'informations seraient certainement utiles!
Jason Harris le
0

Ce soir j'ai eu le même problème en disant

"Impossible d'enregistrer com.xxx.yyy auprès du serveur d'amorçage. Erreur: code d'erreur inconnu.

Cela signifie généralement qu'une autre instance de ce processus était déjà en cours d'exécution ou est bloquée dans le débogueur. (Lldb) "

et j'ai été résolu

1. Déconnectez simplement mon appareil (pour moi, son iPhone) de la machine Xcode / Mac

2. Redémarrez l'appareil (mon iPhone)

3. Suppression de l'application précédemment installée / corrompue

4. Connectez à nouveau le périphérique et démarrez l'exception

Ça marche bien

J'espère que cela aidera quelqu'un là-bas.

swiftBoy
la source