Test target X encontró un error (Early unexpected exit, la operación nunca terminó el bootstrapping – no se intentará reiniciar

He comenzado a trabajar con OCMock para escribir casos de testing para el proyecto existente que he integrado en el espacio de trabajo de mi proyecto. Después de seguir todos los pasos mencionados en este enlace

Cuando ejecuté por primera vez mi caso de testing, me dio este error. Lo busqué e intenté seguir algunas de las soluciones como "crear un nuevo objective", "reiniciar Xcode" pero no me ayudó. ¿Alguna idea?

Tengo mis notas y aplicaciones de demostración para Cocoapods y Carthage aquí https://github.com/onmyway133/TestTarget

  • Asegúrese de que todos los frameworks están vinculados a los objectives de testing.
  • Configure las Runpath Search Paths para apuntar a $(FRAMEWORK_SEARCH_PATHS)

Más información

  • Bibliotecas dependientes de ruta de acceso

Estoy usando carthage y el problema para mí fue search dependencies en un objective de testing. Fijar:

Agregar $(PROJECT_DIR)/Carthage/Build/iOS a las Runpath Search Paths

Puede encontrar reference aquí: problema de Carthage

Mi solución fue agregar una "Fase de file de copy" a mi objective de testing. Allí establecí destino en Frameworks y agregué mi framework con el signo +.

En mi caso, no había nada malo con los files vinculados. El Simulador se quedó un poco atascado con el post de que la aplicación se activó, como: "El nombre de la aplicación quiere enviarle notifications". Presionó OK y la próxima vez que mis XCTests funcionaron bien.

En mi caso, Build Active Architecture Only se configuró en YES.

En el proyecto y los objectives: Configuración de compilation -> Arquitecturas -> Crear architecture activa solo debe ser NO en lugar de SÍ

Solo para compartir mi experiencia sobre este error:

Estoy usando fastlane + cocoapods.

Tengo un espacio de trabajo con 2 frameworks dynamics:

  • Un marco
  • B.framework

Dependencias:

  • A depende de AFNetworking usando cocoapods
  • B depende de A

La dependencia se define en el Podfile.

El error se planteó al ejecutar las testings del marco B.

En mi caso, el problema estaba relacionado con la dependencia faltante a AFNetworking en el objective B.framework.

Al agregar una dependencia de pod a AFNetworking en B.framework en Podfile, todo se resolvió.

Por lo tanto, incluso si el objective B se está comstackndo correctamente, AFNetworking no se integró en la aplicación de testing B y el simulador no pudo ejecutar la aplicación de testing B que generó este error "muy significativo" (*) .

(*) ¡Gracias a Apple por esto!

Wow, perdí mucho time en esto, mi package de testing tenía seleccionada la "Aplicación de host" para mi aplicación. Otros packages de testing no lo hicieron.

Espero que esta solución no sea la solución adecuada para cada situación, pero mis testings fueron principalmente para probar la biblioteca dinámica y realmente no necesitaba una aplicación Host para ejecutarse. Obtuve el error anterior, desactivarlo me permitió ejecutar las testings sin get ese error y los puntos de interrupción funcionaron. Estaba ejecutando MacOS, pero probablemente sea similar para otros entornos. Espero que esta solución no sea la solución adecuada para cada situación, pero mis testings fueron principalmente para probar la biblioteca dinámica y realmente no necesitaba una aplicación Host para ejecutarse.

En el package de testing Vaya a General -> Prueba -> Establezca "Aplicación de host" en Ninguno.

Me gustaría compartir mi respuesta, espero que pueda ahorrar time.

Para mí, el file .m no estaba vinculado correctamente en Fases de compilation -> Fuentes de compilation

En mi caso, había declarado una propiedad como readonly en un file de encabezado:

 // In .h file @property (nonatomic, readonly) NSUInteger count; 

pero me olvidé de agregar esta statement al .m para que se generara un setter:

 // In .m file @property (nonatomic, assign) NSUInteger count; 

Error tonto, no totalmente seguro de por qué se manifestó en este error, pero agregar esa línea al .m solucionó el problema.

En mi caso, mi configuration de compilation -> Arquitecturas estaba configurando solo para armv7 y cambié para ARCHS_STANDARD que era el mismo de mi aplicación de host

Mi caso fue especial. Utilicé 2 files como classs de testing. uno funcionaba perfectamente y el otro tenía ese error.
Ambos se enlazan con el mismo marco.
Simplemente borre los datos derivados

Ventana => Proyectos => Eliminar (en su proyecto)

¡Buena suerte y feliz testing!

En mi caso, no había agregado una fase de Run Script para las bibliotecas Quick and Nimble que integré usando Carthage.