Estaba probando mi aplicación en el simulador cuando se bloqueó al hacer clic en un botón de un UIAlertView. Dejé de depurar allí, hice algunos cambios en el código y construí la aplicación nuevamente. Ahora, cuando ejecuto la aplicación, aparece este error en la consola.
No se pudo registrar com.myApp.debug con el servidor de arranque. Error: código de error desconocido. Esto generalmente significa que otra instancia de este proceso ya se estaba ejecutando o está bloqueada en el depurador. Señal recibida del programa: "SIGABRT".
Intenté eliminar la aplicación del simulador, haciendo una compilación limpia, pero sigo recibiendo este error cuando intento ejecutar la aplicación.
¿Qué debo hacer para poder volver a ejecutar la aplicación en mi simulador?
fuente
ps ax | grep SimulatorBridge
Respuestas:
¿Intenta salir y reiniciar el simulador? Si "lo peor llega a lo peor", siempre puede intentar reiniciar: en mi experiencia, esto debería solucionarlo.
fuente
estado: esto se ha visto tan recientemente como Mac OS 10.8 y Xcode 4.4.
tl; dr: Esto puede ocurrir en dos contextos: cuando se ejecuta en el dispositivo y cuando se ejecuta en el simulador. Cuando se ejecuta en el dispositivo, desconectar y volver a conectar el dispositivo parece arreglar las cosas.
Mike Ash sugirió
Esto no funciona todo el tiempo. De hecho, nunca me ha funcionado, pero claramente funciona en algunos casos. Simplemente no sé qué casos. Entonces vale la pena intentarlo.
De lo contrario, la única forma conocida de solucionar esto es reiniciar el usuario launchd. Reiniciar hará eso, pero hay una forma menos drástica / más rápida. Deberá crear otro usuario administrador, pero solo tiene que hacerlo una vez. Cuando las cosas se cumplan, cierre la sesión como usted mismo, inicie sesión como ese usuario y elimine el launchd que pertenece a su usuario principal, por ejemplo,
sustituyendo su nombre de usuario principal por
user_id
. Iniciando sesión nuevamente cuando tu usuario normal te devuelve a un estado sensato. Un poco doloroso, pero menos que un reinicio completo.detalles:
Esto ha comenzado a suceder más a menudo con Lion / Xcode 4.2. (Personalmente, nunca lo vi antes de esa combinación).
El error parece estar en launchd, que hereda el proceso de la aplicación como un niño cuando el depurador deja de depurarlo sin matarlo. Por lo general, esto se indica cuando la aplicación se convierte en zombie y tiene un estado de proceso de Z en ps.
El problema principal parece estar en el servidor de nombres de arranque que se implementa en launchd. Esto (en la medida en que lo entiendo) asigna los identificadores de las aplicaciones a los puertos mach. Cuando se activa el error, la aplicación muere pero no se limpia del mapa del servidor de nombres del servidor de arranque y, como resultado, el servidor de arranque se niega a permitir que otra instancia de la aplicación se registre con el mismo nombre.
Se esperaba (ver los comentarios) que forzar el lanzamiento
wait()
para el zombie arreglaría las cosas, pero no lo hace. El problema principal no es el estado de zombie (por eso algunos zombis son benignos), sino el servidor de nombres de bootstrap y no hay una forma conocida de despejar este corto de matar a launchd.Parece que el error se desencadena por algo malo entre Xcode, gdb y el usuario launchd. Acabo de repetir la cuña ejecutando una aplicación en el simulador de iPhone, deteniéndolo dentro de gdb, y luego haciendo una compilación y ejecutando el simulador de ipad. Parece ser sensible a los simuladores de conmutación (iOS 4.3 / iOS 5, iPad / iPhone). No sucede todo el tiempo, pero con bastante frecuencia cuando cambio mucho los simuladores.
Matar lanzado mientras estás conectado arruinará tu sesión. Cerrar sesión y volver a iniciar sesión no mata al usuario launchd; OS X mantiene el proceso existente. Un reinicio arreglará las cosas, pero eso es doloroso. Las instrucciones anteriores son más rápidas.
He enviado un error a Apple, FWIW. rdar: // 10330930
fuente
Me parece que he comenzado a tener este problema con Lion + Xcode 4.2. También he experimentado el problema en Xcode 4.3.
He intentado todas las sugerencias, pero ninguna de ellas ha funcionado más que un reinicio completo.
Aquí es cómo determinar si necesita reiniciar rápidamente.
Enumere todos sus procesos de Zombie:
Si ve que su aplicación aparece como un proceso Zombie, deberá reiniciar su máquina. El mensaje de error indica "Esto generalmente significa que otra instancia de este proceso ya se estaba ejecutando o está bloqueada en el depurador". Bueno, Xcode está detectando este proceso Zombie que no puedes matar. La única forma de solucionarlo es con un reinicio del sistema. :(
EDIT, 20120823: tengo un mejor conocimiento de los procesos de Zombie, así que quería actualizar esta respuesta. Un proceso Zombie se crea cuando un proceso padre no llama a wait () (espera a que el proceso cambie de estado) en un proceso hijo que finaliza. No puede ejecutar 'kill' directamente en un proceso Zombie, pero si elimina el proceso padre, el proceso hijo zombie se 'cosechará' y se eliminará de la tabla de procesos.
No he visto este problema en mucho tiempo, así que no he inspeccionado para ver cuál es el proceso principal en este escenario. La alternativa a matar el proceso padre es reiniciar su sistema. :)
fuente
Simplemente me sucedió esto: estaba recibiendo el error solo en mi dispositivo y el simulador funcionaba bien. Terminé teniendo que restablecer mi dispositivo y el error desapareció.
fuente
Tengo este problema muy a menudo recientemente. ¿Qué evitaría que esto ocurra? Cerrar sesión y solucionarlo soluciona el problema, pero ... es molesto hacerlo de vez en cuando.
EDITAR:
Acabo de encontrar la causa. Tuve un error en el método ApplicationWillTerminate. Entonces, cuando hago clic en el botón detener en la ventana Xcode, la aplicación no pudo finalizar correctamente y comenzó a bloquearse.
verifique el Monitor de actividad para ver si su aplicación está en la lista. forzar la salida si es posible.
fuente
Si encuentra que su problema se debe a procesos zombies:
(como en el comentario anterior https://stackoverflow.com/a/8104400/464289 ) y solo desea solucionar el problema de inmediato, puede hacerlo sin reiniciar ni matar nada. Simplemente cambie el nombre del ejecutable de destino del proyecto:¡Fácil!
fuente
Bueno, no hay respuestas, pero al menos una prueba más para hacer. Abra la Terminal y ejecute este comando: "ps-Ael | grep Z". Si obtiene dos entradas, una "(clang)" y la otra, el nombre de su aplicación o empresa, está conectado: reinicie.
Si usted es un desarrollador, ingrese un pequeño error y dígale a Apple lo absolutamente molesto que es reiniciar, y mencione que pueden duplicar este error en "rdar: // 10401934" que acabo de ingresar.
David
fuente
Restablecer el simulador de iOS me solucionó el error. Aunque esto eliminará todas las aplicaciones que tiene en Simulator, soluciona el problema sin tener que reiniciar la máquina.
Puede restablecer su simulador de iOS haciendo lo siguiente:
1) Vaya al menú "Simulador de iOS", junto al logotipo de Apple () en el extremo izquierdo de su pantalla principal.
2) Seleccione "Restablecer contenido y configuración ...".
3) Lea el mensaje emergente y, si está de acuerdo, haga clic en "Restablecer", de lo contrario, haga clic en "No restablecer".
fuente
fuente
Tuve el problema que @jyap menciona con los procesos zombie. La única forma de eliminarlos era reiniciar. Sin embargo, noté que mis amigos que trabajan en el mismo proyecto tendrían el mismo problema pero podrían matar el simulador sin crear un proceso zombie. Desinstalé completamente Xcode y lo reinstalé, y aunque sigo recibiendo el error, no crea procesos zombies, por lo que no tengo que reiniciar.
Antes de hacer eso, estaba usando esta solución realmente fea: cambie la ID de su aplicación y vuelva a ejecutarla. Terminas con copias basura de la aplicación en el simulador, pero puedes posponer el reinicio por un tiempo.
fuente
Este error me sucede mucho, casi cada vez que pruebo la aplicación en el simulador, lo que me obliga a reiniciar.
Aquí hay una solución alternativa si desea realizar algún trabajo:
YES
.Esto significará que cuando presiona el botón de inicio en el simulador o sale del simulador, la aplicación no se bloquea.
¡No olvide volver a cambiar esta configuración antes de la distribución! Ponlo en tu lista de verificación de lanzamiento :)
fuente
Si esto sucede al probar en el iPhone. Solo reinicia el teléfono. Por lo que me han dicho, el teléfono o el simulador todavía cree que hay una instancia de la aplicación ejecutándose, por lo que la última vez que se ejecutó no había terminado correctamente debido a un error en su código o al teléfono / simulador solo quería tener un gemido.
fuente
Recibí este error al depurar mi aplicación en un iPhone 4. El reinicio del iPhone solucionó mi problema. (Apagando el iPhone colgado ...)
No tenía ningún proceso zombie en mi Mac y reiniciar la Mac no resolvió el problema.
¿Quizás este error puede manifestarse tanto en el simulador como en los dispositivos reales?
fuente
¡Reinicié el dispositivo, funcionó! :RE
Gracias a todos por las excelentes sugerencias.
fuente
Acabo de tener este error. Intenté reiniciar el simulador y Xcode pero mi proyecto solo funcionaría nuevamente después de una limpieza y compilación. No tengo idea de qué lo causó.
fuente
Tuve un setter recursivo que explotó en la pila y eliminó mi aplicación de tal manera que tuve que encender mi iPad. Fue demostrable con una solución en el código.
fuente
Tuve el mismo problema y lo resolví haciendo lo siguiente
También hice una cosa más, porque Xcode está configurado para usar iOS 5.0 y mi proyecto usa iOS 4.3
fuente
Solución alternativa:
Pierdes todos los datos en la aplicación, ya que en realidad es una nueva aplicación que se ejecuta en lo que respecta al simulador de iPhone. Esto puede o no ser más molesto que reiniciar, solo quería agregarlo a la lista.
fuente
La causa
Ejecutar su aplicación en el simulador antes de que la aplicación que se ejecutaba anteriormente se haya detenido por completo.
La solución
Espere hasta que vea que el botón Detener se vuelve a activar antes de volver a ejecutarlo.
(Estoy usando Xcode 4.2.1. Este problema ocurrió con mucha frecuencia cuando actualicé a OS X Lion).
fuente
Se solucionó reiniciando mi teléfono después de eliminar la aplicación, luego reconstruyéndolo limpio y ejecutándolo nuevamente. Funciona bien ahora.
Extraño.
fuente
No es necesario reconstruir ni reinstalar para mi problema, y en mi caso apareció el error al intentar ejecutar la aplicación en el iPhone. El simulador funcionó bien.
Solución: elimine la aplicación del teléfono, reinicie el teléfono en frío y ahora todo está bien.
fuente
Me pasó mucho con Xcode 4.2.1 en Lion. Se actualizó a 4.3.2 y ya no sucede. Me alegro de que lo arreglaron.
fuente
Mike Ash publicó una solución (¡Dios lo bendiga!) Que no requiere reiniciar. Solo corre:
fuente
Creo que esto es causado por el cierre forzado de su aplicación en el iPhone antes de presionar el botón detener en Xcode. A veces, cuando presiona el botón de detener en Xcode, se tarda más tiempo en salir de la aplicación si se cuelga. Pero solo sea paciente, eventualmente dejará de funcionar la mayor parte del tiempo.
fuente
Puede asignar variables en función o pestaña. Se cerrará si su función o pestaña se cierra. Por lo tanto, debe declararla variable miembro o variable global.
fuente
Recibía este error todo el tiempo hasta que dejé de confiar en el botón "Detener" en el cuadro de diálogo Ejecutar. Ahora que siempre presiono detener en la barra de herramientas antes de intentar ejecutar, aún no he encontrado ningún proceso zombie.
fuente
Oh Dios mío, probé TODO lo mencionado anteriormente y en otras publicaciones. Reinstalé Xcode, reinicié mi máquina, copié todos los archivos faltantes en las carpetas correctas ... Eventualmente hice una copia de seguridad de mi iPhone, lo limpié y lo restauré, ¡y funcionó!
Creo que lo que pudo haber sido la causa de la lectura en y alrededor de esto fue desconectar mi iphone blanco que estaba funcionando con herramientas de rendimiento que detectaban fugas. O algo por el estilo.
Aaaah, gran suspiro de alivio.
fuente
En la peor condición, restablecer el contenido y la configuración de iOS Simulater, y la mayoría de las veces en mi caso, salir de XCode junto con el simulador, siempre funciona para mí con XCode4.6 (que con frecuencia se cuelga)
fuente
Me enfrenté a este tipo de problema una vez en mi caso, esto es lo que hice
En la mayoría de los casos, lo ejecuté en el paso 6. En casos extremos, tuve que reiniciar mi máquina.
fuente
Este error solía ocurrir en versiones anteriores del simulador de iOS porque las instancias anteriores de un trabajo en otro dispositivo que se estaba cerrando podrían colisionar con la nueva instancia.
iOS 6.0 y versiones posteriores no deberían experimentar problemas como este porque iOS 6.0 introdujo el uso de subconjuntos de arranque y iOS 7.0 introdujo el uso de un servidor de arranque dedicado (launchd_sim) que está completamente aislado del servidor de arranque del host.
fuente