Je testais mon application sur le simulateur quand il s'est écrasé en cliquant sur un bouton d'un UIAlertView. J'ai arrêté le débogage là-bas, apporté quelques modifications au code et reconstruit l'application. Maintenant, lorsque j'exécute l'application, j'obtiens cette erreur dans la console
Impossible d'enregistrer com.myApp.debug 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 débogueur. Le programme a reçu le signal: «SIGABRT».
J'ai essayé de supprimer l'application du simulateur, en faisant une construction propre, mais j'obtiens toujours cette erreur lorsque j'essaie d'exécuter l'application.
Que dois-je faire pour pouvoir à nouveau exécuter l'application sur mon simulateur?
la source
ps ax | grep SimulatorBridge
Réponses:
Essayez de quitter et de redémarrer le simulateur? Si «le pire vient au pire», vous pouvez toujours essayer de redémarrer: d'après mon expérience, cela devrait le réparer.
la source
état: cela a été vu aussi récemment que Mac OS 10.8 et Xcode 4.4.
tl; dr: Cela peut se produire dans deux contextes: lors de l'exécution sur l'appareil et lors de l'exécution sur le simulateur. Lors de l'exécution sur l'appareil, la déconnexion et la reconnexion de l'appareil semblent résoudre les problèmes.
Mike Ash a suggéré
Ça ne marche pas tout le temps. En fait, cela n'a jamais fonctionné pour moi, mais cela fonctionne clairement dans certains cas. Je ne sais pas quels cas. Cela vaut donc la peine d'essayer.
Sinon, la seule manière connue de résoudre ce problème est de redémarrer l'utilisateur launchd. Le redémarrage le fera, mais il existe un moyen moins drastique / plus rapide. Vous devrez créer un autre utilisateur administrateur, mais vous ne devrez le faire qu'une seule fois. Lorsque les choses s'arrêtent, déconnectez-vous en tant que vous-même, connectez-vous en tant qu'utilisateur et tuez le launchd qui appartient à votre utilisateur principal, par exemple,
en remplaçant votre nom d'utilisateur principal par
user_id
. Connectez-vous à nouveau lorsque votre utilisateur normal vous ramène à un état sain. Un peu douloureux, mais moins qu'un redémarrage complet.détails:
Cela a commencé à se produire plus souvent avec Lion / Xcode 4.2. (Personnellement, je ne l'ai jamais vu avant cette combinaison.)
Le bogue semble être dans launchd, qui hérite du processus d'application en tant qu'enfant lorsque le débogueur arrête de le déboguer sans le tuer. Cela est généralement signalé par l'application qui devient un zombie, avec un statut de processus de Z en ps.
Le problème principal semble être dans le serveur de noms d'amorçage qui est implémenté dans launchd. Ceci (dans la mesure où je le comprends) mappe les ID d'application aux ports mach. Lorsque le bogue est déclenché, l'application meurt mais n'est pas nettoyée de la carte du serveur de noms du serveur d'amorçage et, par conséquent, le serveur d'amorçage refuse d'autoriser l'enregistrement d'une autre instance de l'application sous le même nom.
On espérait (voir les commentaires) que forcer launchd to
wait()
pour le zombie résoudrait les choses, mais ce n'est pas le cas. Ce n'est pas le statut de zombie qui est le problème principal (c'est pourquoi certains zombies sont bénins) mais le serveur de noms de bootstrap et il n'y a aucun moyen connu de supprimer ce court-circuit de tuer launchd.Il semble que le bogue soit déclenché par quelque chose de mauvais entre Xcode, gdb et l'utilisateur launchd. Je viens de répéter le coin en exécutant une application dans le simulateur d'iphone, en la faisant arrêter dans gdb, puis en faisant une construction et en exécutant vers le simulateur d'ipad. Il semble sensible à la commutation des simulateurs (iOS 4.3 / iOS 5, iPad / iPhone). Cela n'arrive pas tout le temps, mais assez fréquemment lorsque je change souvent de simulateur.
Tuer launchd pendant que vous êtes connecté gâchera votre session. Se déconnecter et se reconnecter ne tue pas l'utilisateur launchd; OS X conserve le processus existant. Un redémarrage réparera les choses, mais c'est douloureux. Les instructions ci-dessus sont plus rapides.
J'ai soumis un bogue à Apple, FWIW. rdar: // 10330930
la source
Je trouve que j'ai commencé à avoir ce problème avec Lion + Xcode 4.2. J'ai également rencontré le problème dans Xcode 4.3.
J'ai essayé toutes les suggestions mais aucune d'entre elles n'a fonctionné autre qu'un redémarrage complet.
Voici comment déterminer si vous avez besoin d'un redémarrage rapide.
Énumérez tous vos processus Zombie:
Si vous voyez votre application répertoriée comme un processus Zombie, vous devrez redémarrer votre machine. Le message d'erreur indique "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". Eh bien, Xcode détecte ce processus Zombie que vous ne pouvez pas tuer. La seule façon de résoudre ce problème est de redémarrer le système. :(
EDIT, 20120823: J'ai une meilleure connaissance des processus Zombie, donc je voulais mettre à jour cette réponse. Un processus Zombie est créé lorsqu'un processus parent n'appelle pas wait () (attendre que le processus change d'état) sur un processus enfant se terminant. Vous ne pouvez pas exécuter 'kill' directement sur un processus Zombie mais si vous tuez le processus parent, le processus enfant zombie sera 'récolté' et supprimé de la table de processus.
Je n'ai pas vu ce problème depuis longtemps, donc je n'ai pas inspecté pour voir quel est le processus parent dans ce scénario. L'alternative à l'arrêt du processus parent consiste à redémarrer votre système. :)
la source
Je viens de m'arriver à cela: je n'obtenais l'erreur que sur mon appareil et le simulateur fonctionnait bien. J'ai fini par devoir réinitialiser mon appareil et l'erreur a disparu.
la source
J'ai ce problème très souvent récemment. Qu'est-ce qui empêcherait cela de se produire? La déconnexion et la connexion corrigent le problème mais ... c'est ennuyeux de le faire de temps en temps.
ÉDITER:
Je viens de trouver la cause. J'ai eu un bogue dans la méthode ApplicationWillTerminate. Ainsi, lorsque je clique sur le bouton d'arrêt de la fenêtre Xcode, l'application ne peut pas se terminer correctement et commence à se bloquer.
vérifiez le moniteur d'activité pour voir si votre application figure sur la liste. forcer à quitter si possible.
la source
Si vous trouvez que votre problème est dû à des processus zombies:
(comme dans le commentaire précédent https://stackoverflow.com/a/8104400/464289 ) et que vous souhaitez simplement résoudre le problème immédiatement, vous pouvez le faire sans redémarrer ni tuer quoi que ce soit. Renommez simplement l'exécutable cible de votre projet:Facile!
la source
Eh bien, pas de réponses mais au moins un autre test à faire. Ouvrez Terminal et exécutez cette commande: "ps-Ael | grep Z". Si vous obtenez deux entrées, une "(clang)" et l'autre le nom de votre application ou de votre entreprise, vous êtes arrosé - redémarrez.
Si vous êtes un développeur, entrez un court bogue et dites à Apple à quel point il est absolument ennuyeux de redémarrer, et mentionnez qu'ils peuvent dupliquer ce bogue dans "rdar: // 10401934" que je viens de saisir.
David
la source
La réinitialisation du simulateur iOS a résolu l'erreur pour moi. Bien que cela supprime toutes les applications que vous avez dans Simulator, cela résout le problème sans avoir à redémarrer la machine.
Vous pouvez réinitialiser votre simulateur iOS en procédant comme suit:
1) Allez dans le menu "iOS Simulator", à côté du logo Apple () à l'extrême gauche de votre écran principal.
2) Sélectionnez "Réinitialiser le contenu et les paramètres ...".
3) Lisez le message pop et si vous êtes d'accord, cliquez sur "Réinitialiser" sinon, cliquez sur "Ne pas réinitialiser".
la source
la source
J'ai eu le problème que @jyap mentionne avec les processus zombies. La seule façon de les effacer était de redémarrer. Cependant, j'ai remarqué que mes amis travaillant sur le même projet auraient le même problème mais pourraient tuer le simulateur sans créer de processus zombie. J'ai complètement désinstallé Xcode et l'ai réinstallé, et même si je reçois toujours l'erreur, il ne crée pas de processus zombies, donc je n'ai pas à redémarrer.
Avant de faire cela, j'utilisais cette solution de contournement vraiment laide: changez votre ID d'application et exécutez à nouveau. Vous vous retrouvez avec des copies indésirables de l'application dans le simulateur, mais vous pouvez différer le redémarrage pendant un certain temps.
la source
Cette erreur m'arrive beaucoup, presque à chaque fois que je teste l'application dans le simulateur, me forçant à redémarrer.
Voici une solution de contournement si vous souhaitez effectuer un travail:
YES
.Cela signifie que lorsque vous appuyez sur le bouton d'accueil du simulateur ou que vous quittez le simulateur, l'application ne se bloque pas.
N'oubliez pas de modifier ce paramètre avant la distribution! Mettez-le sur votre liste de contrôle de sortie :)
la source
Si cela se produit lors des tests sur l'iPhone. Redémarrez simplement le téléphone. D'après ce que l'on m'a dit, le téléphone ou le simulateur pense toujours qu'il existe une instance de l'application en cours d'exécution, donc lors de sa dernière exécution, il ne s'est pas terminé correctement, soit pour une erreur dans votre code, soit pour que le téléphone / simulateur veuille juste avoir un gémissement.
la source
J'ai eu cette erreur lors du débogage de mon application sur un iPhone 4. Un redémarrage difficile de l'iPhone a résolu mon problème. (Éteindre l'iPhone accroché ...)
Je n'avais aucun processus zombie sur mon Mac et le redémarrage du Mac n'a pas résolu le problème.
Peut-être que ce bug peut se manifester à la fois sur le simulateur et sur les appareils réels ???
la source
Redémarré l'appareil, travaillé! :RÉ
Merci à tous pour les excellentes suggestions.
la source
Je viens d'avoir cette erreur. J'ai essayé de redémarrer le simulateur et Xcode mais mon projet ne fonctionnerait à nouveau qu'après un nettoyage et une construction. Aucune idée de ce qui l'a causé.
la source
J'avais un setter récursif qui a explosé dans la pile et a tué mon application de telle manière que je devais allumer mon iPad. C'était prouvable avec un correctif dans le code.
la source
J'ai eu le même problème et l'ai résolu en procédant comme suit
J'ai également fait une chose, car Xcode est configuré pour utiliser iOS 5.0 et mon projet utilise iOS 4.3
la source
Solution alternative:
Vous perdez toutes les données de l'application, car il s'agit en fait d'une nouvelle application exécutée en ce qui concerne le simulateur iPhone. Cela peut ou peut ne pas être plus ennuyeux que le redémarrage - je voulais juste l'ajouter à la liste.
la source
La cause
Exécution de votre application dans le simulateur avant l'arrêt complet de l'application précédemment exécutée.
The Fix
Attendez de voir le bouton Stop redevenir actif avant de recommencer.
(J'utilise Xcode 4.2.1. Ce problème s'est produit très fréquemment lors de la mise à niveau vers OS X Lion).
la source
Résolu en redémarrant mon téléphone après avoir supprimé l'application, puis en la reconstruisant propre et en la réexécutant. Fonctionne bien maintenant.
Bizarre.
la source
Aucune reconstruction ou réinstallation n'est nécessaire pour mon problème, et dans mon cas, l'erreur est apparue lors de la tentative d'exécution de l'application sur l'iPhone. Le simulateur a bien fonctionné.
Solution: supprimez l'application du téléphone, redémarrez à froid le téléphone et maintenant tout va bien.
la source
Cela m'est arrivé beaucoup avec Xcode 4.2.1 sur Lion. Mis à jour en 4.3.2 et cela n'arrive plus. Heureux qu'ils l'aient réparé.
la source
Mike Ash a publié une solution (que Dieu le bénisse!) Qui ne nécessite pas de redémarrage. Exécutez simplement:
la source
Je pense que cela est dû à la fermeture forcée de votre application sur l'iPhone avant d'appuyer sur le bouton d'arrêt dans Xcode. Parfois, lorsque vous appuyez sur le bouton d'arrêt dans Xcode, il faut plus de temps pour quitter l'application si elle se bloquait. Mais soyez patient, il finira par s'arrêter la plupart du temps.
la source
Vous pouvez attribuer une variable dans la fonction ou l'onglet. Il sera libéré si votre fonction ou votre onglet est fermé. Vous devez donc le déclarer variable membre ou variable globale.
la source
J'obtenais cette erreur tout le temps jusqu'à ce que j'arrête de faire confiance au bouton "Stop" dans la boîte de dialogue Exécuter. Maintenant que j'ai toujours appuyé sur stop dans la barre d'outils avant d'essayer de courir, je n'ai encore rencontré aucun processus zombie.
la source
Oh mon - j'ai essayé TOUT énuméré ci-dessus et dans d'autres messages. J'ai réinstallé Xcode, redémarré ma machine, copié tous les fichiers manquants dans les bons dossiers ... Finalement, j'ai sauvegardé mon iphone, l'ai essuyé et restauré, et cela a fonctionné!
Je pense que ce qui a pu être la cause de la lecture dans et autour de cela a été de déconnecter mon iphone blanc, il fonctionnait avec des outils de performance qui détectaient les fuites. Ou quelque chose comme ça.
Aaaah, grand soupir de soulagement.
la source
Dans la pire des conditions Réinitialiser le contenu et les paramètres d'iOS Simulater, et la plupart du temps dans mon cas, quitter XCode avec le simulateur, le travail fonctionne toujours pour moi avec XCode4.6 (qui se bloque fréquemment)
la source
J'ai fait face à ce genre de problème une fois dans mon cas, voici ce que j'ai fait
Dans la plupart des cas, je l'ai fait fonctionner à l'étape 6 dans les cas extrêmes, j'ai dû redémarrer ma machine.
la source
Cette erreur se produisait auparavant dans les anciennes versions du simulateur iOS, car des instances plus anciennes d'un travail dans un autre appareil qui était en cours d'arrêt pouvaient entrer en collision avec la nouvelle instance.
iOS 6.0 et versions ultérieures ne devraient pas rencontrer de problèmes comme celui-ci, car iOS 6.0 a introduit l'utilisation de sous-ensembles de démarrage et iOS 7.0 a introduit l'utilisation d'un serveur de démarrage dédié (launchd_sim) qui est complètement isolé du serveur de démarrage de l'hôte.
la source