ios xcode ios-simulator

iOS-error extraño al probar en simulador



xcode ios-simulator (30)

Estaba probando mi aplicación en el simulador cuando se estrelló 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, recibo 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á colgada en el depurador. El programa recibió la señal: "SIGABRT".

Intenté quitar la aplicación del simulador, hacer una compilación limpia, pero todavía recibo este error cuando intento ejecutar la aplicación.

¿Qué debo hacer para poder volver a ejecutar la aplicación en mi simulador?


  1. Cerrar simulador
  2. Evita que la aplicación se ejecute en xCode.
  3. Abra el Monitor de actividad y busque un proceso que se ejecuta con su NOMBRE de aplicación .
  4. Matar este proceso en Activity Monitor
  5. Reconstruye tu proyecto y deberías estar listo

¡Reinicié el dispositivo, funcionó! :RE

Gracias a todos por las grandes sugerencias.


Acabo de ocurrirme esto: estaba recibiendo el error solo en mi dispositivo y el simulador funcionaba bien. Terminé teniendo que reiniciar mi dispositivo y el error desapareció.


Acabo de tener este error. Intenté reiniciar el simulador y Xcode, pero mi proyecto solo volvería a funcionar después de limpiar y construir. No tengo idea de qué lo causó.


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 con el nombre de su aplicación o compañía, tendrá acceso a reiniciar.

Si usted es un desarrollador, ingrese un error corto y dígale a Apple lo molesto que es tener que reiniciar, y mencione que pueden duplicar este error en "rdar: // 10401934", que acabo de ingresar.

David


Creo que esto se debe a que la aplicación se cierre por la fuerza en el iPhone antes de presionar el botón de parada en Xcode. A veces, cuando presiona el botón de parada en Xcode, luego se tarda más tiempo en salir de la aplicación si se bloquea. Pero solo se paciente, eventualmente se rendirá la mayor parte del tiempo.


En la mayoría de las peores condiciones Reinicie el contenido y la configuración de iOS Simulater, y la mayoría de las veces en mi caso, al salir de XCode junto con el simulador, siempre me funciona a mí con XCode4.6 (que con frecuencia se cuelga)


Este error me pasa 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:

  • Haga clic en su proyecto en el navegador de proyectos.
  • Go Target -> Información
  • Agregar una clave para la aplicación no se ejecuta en segundo plano y se establece en 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 olvides volver a cambiar esta configuración antes de la distribución! Ponlo en tu lista de verificación de lanzamiento :)


Este error solía ocurrir en versiones anteriores del simulador de iOS porque las instancias más antiguas de un trabajo en otro dispositivo que se estaba cerrando podrían chocar con la nueva instancia.

iOS 6.0 y posteriores no deberían experimentar problemas como este porque iOS 6.0 introdujo el uso de subconjuntos bootstrap, e iOS 7.0 introdujo el uso de un servidor dedicado bootstrap (launchd_sim) que está completamente aislado del servidor bootstrap del host.


Estoy teniendo este problema muy a menudo recientemente. ¿Qué evitaría que esto ocurra? Cerrar sesión y solucionar el problema, pero ... es molesto hacerlo de vez en cuando.

EDITAR:

Acabo de encontrar la causa. Tuve un error en el método ApplicationWillTerminate. Así que cuando hago clic en el botón de parada en la ventana de 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 salir si es posible.


Intenta salir y reiniciar el simulador? Si "lo peor es peor", siempre puede intentar reiniciar: en mi experiencia, esto debería solucionarlo.


Me enfrenté a este tipo de problema una vez en mi caso, esto es lo que hice

  1. Eliminar la aplicación del simulador.
  2. Eliminar la carpeta de datos derivados.
  3. Realice una acción de limpieza en el proyecto seleccionando el menú del producto - limpiar
  4. Reinicia el simulador.
  5. Salir de Xcode.
  6. Intente ejecutar el proyecto ahora, si está funcionando bien, vaya al paso 7
  7. Repita todos los pasos del 1 al 5 y luego reinicie la máquina.

En la mayoría de los casos lo ejecuté en el paso 6 casos extremos tuve que reiniciar mi máquina.


Me parece que he empezado 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 determina si necesita reiniciar rápidamente.

Enumera todos tus procesos de Zombie:

ps -el | grep ''Z''

Si ve que su aplicación aparece como un proceso de 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. :(

EDITAR, 20120823: Tengo un mejor conocimiento de los procesos de Zombie, así que quería actualizar esta respuesta. Se crea un proceso Zombie cuando un proceso principal no llama a wait () (esperar a que el proceso cambie de estado) en un proceso secundario de terminación. No puede ejecutar ''kill'' directamente en un proceso Zombie, pero si mata el proceso padre, el proceso hijo zombie será ''cosechado'' y eliminado de la tabla de proceso.

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. :)


Me sucedió mucho con Xcode 4.2.1 en Lion. Actualizado a 4.3.2 y ya no sucede. Me alegro de que lo arreglaron.


Mike Ash publicó una solución (¡que Dios lo bendiga!) Que no requiere un reinicio. Solo corre:

launchctl list|grep UIKitApplication|awk ''{print $3}''|xargs launchctl remove

El comando anterior enumera todos los trabajos launchd, busca uno con UIKitApplication en el nombre (que será el trabajo correspondiente a su aplicación que se está quedando indebidamente), extrae el nombre y le dice a launchd que se deshaga de ese trabajo.


No es necesario reconstruir ni reinstalar mi problema, y ​​en mi caso, apareció un error al intentar ejecutar la aplicación en el iPhone. Simulador funcionó bien.

Solución: elimine la aplicación del teléfono, reinicie el teléfono en frío y ahora todo está bien.


Oh, lo intenté TODO lo mencionado anteriormente y en otras publicaciones. Reinstalé Xcode, reinicié mi máquina, copié todos los archivos faltantes en las carpetas correctas ... Finalmente, hice una copia de seguridad de mi iPhone, lo limpié y restauré, ¡y funcionó!

Creo que lo que pudo haber sido la causa de la lectura en torno a esto fue desconectar mi iPhone. Estaba funcionando con herramientas de rendimiento para detectar fugas. O algo así.

Aaaah, gran suspiro de alivio.


Puede asignar variable en función o pestaña. Se repartirá si se cierra su función o pestaña. Así que debes declararlo variable de miembro o variable global.


Recibí este error al depurar mi aplicación en un iPhone 4. El reinicio del iPhone no solucionó mi problema. (Apagando el iPhone colgado ...)

No tuve ningún proceso zombie en mi mac y reiniciar el mac no resolvió el problema.

Tal vez este error puede manifestarse tanto en el simulador como en los dispositivos reales ???


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 Parar en la barra de herramientas antes de intentar ejecutar, todavía tengo que encontrar algún proceso zombie.


Restablecer el simulador de iOS corrigió el error para mí. Aunque esto eliminará todas las aplicaciones que tiene en Simulator, soluciona el problema sin tener que reiniciar la máquina.

Puedes reiniciar tu simulador de iOS haciendo lo siguiente:

1) Vaya al menú "Simulador de iOS", junto al logotipo de Apple () en el extremo izquierdo de la 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".


Se solucionó al reiniciar mi teléfono después de eliminar la aplicación, luego reconstruirla de nuevo y ejecutándose nuevamente. Funciona bien ahora.

Extraño.


Si encuentras que tu problema se debe a procesos zombie:

ps -el | grep ''Z'' (como en el comentario anterior https://.com/a/8104400/464289 ) y solo desea solucionar el problema de inmediato, puede hacerlo sin reiniciar o matar cualquier cosa. Solo cambia el nombre de tu proyecto ejecutable:

  1. Haga clic en el proyecto en el panel de la izquierda
  2. Seleccione Crear configuración en el panel central
  3. En " Embalaje ", cambie el " Nombre del producto " de $ (TARGET_NAME) a ​​$ (TARGET_NAME) .1

¡Fácil!


Si esto sucede al probar en el iPhone. Sólo reinicia el teléfono. Por lo que me han dicho, el teléfono o simulador todavía cree que hay una instancia de la aplicación en ejecución, por lo que, cuando se ejecutó por última vez, no terminó correctamente, ya sea porque se produjo un error en su código o el teléfono / simulador solo quería tener un gemido.


Solución alternativa:

  • Dale a tu aplicación un nuevo identificador. Si se llama com.foobar.myapp, llámalo com.foobar.myapp01

Pierde 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 puede ser más molesto que reiniciar, solo quería agregarlo a la lista.


Tuve el mismo problema y lo resolví haciendo lo siguiente

  • Eliminando la aplicación del dispositivo,
  • Desconectando el dispositivo de Mac,
  • Apagar y encender el dispositivo,
  • Saliendo y relanzando Xcode,
  • Dejar de instrumentos,
  • Por último, limpiar y construir de nuevo.

También hice una cosa más, porque Xcode está configurado para usar iOS 5.0 y mi proyecto usa iOS 4.3

  • Eliminar todos los marcos y agregarlos de nuevo.

Tuve el problema @jyap menciona con procesos zombie. La única forma de eliminarlos era reiniciar. Sin embargo, me di cuenta de 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é por completo Xcode y lo reinstalé, y aunque todavía obtengo el error, no crea procesos zombie, por lo que no tengo que reiniciar.

Antes de hacer eso, estaba usando esta solución muy fea: cambia tu ID de aplicación y ejecuta otra vez. Terminas con copias no deseadas de la aplicación en el simulador, pero puedes postergar el reinicio por un tiempo.


Tuve un setter recursivo que sopló a través de la pila y mató mi aplicación de tal manera que tuve que encender mi iPad. Era demostrable con una corrección en el código.


Estado: esto se ha visto recientemente en 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ó

launchctl list|grep UIKitApplication|awk ''{print $3}''|xargs launchctl remove

Esto no funciona todo el tiempo. De hecho, nunca ha funcionado para mí, pero claramente funciona en algunos casos. Simplemente no sé qué casos. Así que vale la pena intentarlo.

De lo contrario, la única forma conocida de solucionar este problema es reiniciar el usuario launchd. El reinicio hará eso, pero hay una manera menos drástica / más rápida. Tendrá que crear otro usuario administrador, pero solo tendrá que hacerlo una vez. Cuando las cosas encajen, 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,

sudo kill -9 `ps aux | egrep ''user_id .*[0-9] /sbin/launchd'' | awk ''{print $2}''`

sustituyendo su nombre de usuario principal por user_id . Al volver a iniciar sesión, su usuario normal volverá a un estado normal. 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. Esto generalmente se señala cuando la aplicación se convierte en un zombie, teniendo un estado de proceso de Z en ps.

El problema principal parece estar en el servidor de nombres bootstrap que se implementa en launchd. Esto (en la medida que lo entiendo) mapea los identificadores de aplicaciones a los puertos de Mach Cuando se desencadena el error, la aplicación muere pero no se elimina del mapa del servidor de nombres del servidor bootstrap y, como resultado, el servidor bootstrap se niega a permitir que otra instancia de la aplicación se registre con el mismo nombre.

Se esperaba (ver los comentarios) que obligar a launchd a wait() al zombi a arreglar las cosas, pero no lo hace. El problema principal no es el estado de los zombis (por lo que algunos zombis son benignos), sino el servidor de nombres bootstrap, y no se conoce ninguna forma de eliminar este problema.

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éndola en gdb y luego ejecutando una compilación y ejecutándola en 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 a launchd 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 alrededor. 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


La causa

Ejecutar su aplicación en el simulador antes de que la aplicación que se ejecuta anteriormente se haya detenido por completo.

La solución

Espere hasta que vea que el botón Detener se active nuevamente antes de ejecutar nuevamente.

(Estoy usando Xcode 4.2.1. Este problema ocurrió con mucha frecuencia cuando actualicé a OS X Lion).