He instalado una XCode 5 de iOS 7 proyecto para la unidad de pruebas.

Por supuesto, la configuración de la unidad de pruebas se me toma tanto tiempo que estoy tratando de mantener la fe de que vale la pena. Luchando durante horas sobre este error:

ld: building for iOS Simulator, but linking against dylib built for MacOSX file
'/Applications/Xcode5-DP5.app/Contents/Developer/Library/Frameworks/XCTest.framework/XCTest' 
for architecture i386

Cualquier idea sobre cómo resolver?

  • Estoy teniendo el mismo problema – ¿alguna vez encontrar una solución?
InformationsquelleAutor user798719 | 2013-08-16

11 Comentarios

  1. 21

    Comprobar su Marco de las Rutas de Búsqueda en la prueba de parámetros de destino. Estos pueden ser dañados cuando la adición de la XCTest Marco.

    La adición de XCTest para uno de mis proyectos antepone un «/» para los caminos provocando a no encontrar la versión correcta.

    • Quitando los 2 ocurrencias de (\») hacen a mí me funciona, Gracias!
    • Gracias, y un gran lugar! No deseado de la cadena de-escape, introducido por XCode, fue el problema.
  2. 17

    Ninguna de las anteriores respuestas trabajó para mí. Me hizo encontrar una respuesta aquí en un comentario dejado por Tim Macfarlane.

    Linker errores buscando una clase en su aplicación…
    conjunto de los «Símbolos Ocultos por Defecto» construir valor a «NO» en su aplicación
    de destino. Esto hace que todos los de su app clases disponibles para su prueba destino
    automáticamente…

    Así, que significa:

    • Navegador de proyectos > Seleccione su proyecto
    • Objetivos > Selecciona la Aplicación (no Pruebas)
    • Build Settings > de la Búsqueda para «Símbolos Ocultos Por Defecto»
    • «Símbolos Ocultos Por Defecto» > Cambiar lo de «SÍ» a «NO»
    • Quiso decir «Cambio de SÍ para NO»? Nada me ha funcionado, ni siquiera esto 🙁
    • Buen ojo. Hice la corrección. Si esto no resuelve el problema, no sé qué sería de 🙁
    • ¿Has visto mi respuesta en este hilo sobre el otro enlazador? Esa es la última pieza que me faltaba. NO tenía necesidad de todos los otros caminos de búsqueda que otros, ha agregado.
    • Gran seguimiento a través de @RyanH. Gracias!
    • Acabo de cambiar para DEPURAR solo, y resolvió el tema que une con las clases compiladas sólo en la aplicación de hospedaje.
    • Yo también había que establecer Deployment Postprocessing a NO para Depurar

  3. 13

    Tuve el mismo problema; el problema (para mí, al menos) era que la FRAMEWORKS_SEARCH_PATHS construir una de las opciones enumeradas en el SDK de marcos carpeta después de el principal desarrollador de marcos carpeta.

    De los marcos de trabajo incluidas con Xcode tiene tres generaciones: uno para OS X, una para iOS (dispositivo), y una tercera para el Simulador de iOS. El OS X es construir en el principal desarrollador de la carpeta, con los otros dos en sus respectivas carpetas de plataforma. El problema aquí es que si usted no especifica para buscar en las carpetas del SDK de primera (los que están dentro de las carpetas de plataforma), Xcode (o más correctamente, el enlazador) se encuentra el OS X construyen la primera y producir el error que ves.

    La solución es simple, poner:

    FRAMEWORK_SEARCH_PATHS = $(SDKROOT)/Developer/Library/Frameworks $(inherited)

    en su configuración de generación. Si usted está poniendo construir la configuración en el archivo de proyecto (no lo recomiendo, pero esa es otra cuestión para otro día), es simplemente llamado «Marco de las rutas de búsqueda.»

    NOTA: a Veces Xcode un poco lento para atrapar; usted probablemente tendrá que eliminar su build carpeta (mejor que solo una limpia) para que surta efecto.

    • Sólo esta respuesta trabajó para mí. Tengo toda la ruta de acceso y la configuración de aceptar, pero el orden en que realmente importa. Yo estaba usando SenTestingKit. Buscado la solución por un par de horas y finalmente encontrado.
    • Igual que @karim. No puedo creer cuánto tiempo he perdido en esto …
  4. 6

    Tienen el mismo problema después de la conversión de las pruebas de SenTestCase a XCTestCase. Volviendo marco dirs solucionado el problema:

    "$(SDKROOT)/Developer/Library/Frameworks" (non-recursive)
    "$(DEVELOPER_LIBRARY_DIR)/Frameworks" (non-recursive)
    • Millones de upvotes si pudiera. Esta fue la solución para mí.
    • Sí, también se ha corregido esto para mí. Gracias!
  5. 5

    Así que, para mí, lo que me faltaba después de intentar todo lo demás en este post, fue:

    Otros Enlazador:

    -framework XCTest

    Actualmente estoy usando Xcode 6.0 (con el iOS 8 SDK), así que estoy sorprendido de que la «Editar > Refactorizar > Convertir a XCTest…» opción de no agregar automáticamente.

    • Yup, que trabajó para mí, gracias! Extraño que la conversión se pierde esta fuera!
  6. 4

    Yo era el problema que enfrentan, mientras que la adición sentestingkit marco en xcode 5 . Estos ajustes trabajaron para resolver enlazador problema.XCTest errores de compilación para la prueba objetivo de Xcode 5:

    • Esto funciona, pero tengo algo de «directorio no encontrado» errores. Temo que esto puede causar problemas más adelante
    • puedes publicar que el directorio no encontrado .Instantánea o ruta de acceso completa ?
  7. 3

    He tenido este problema al añadir otro archivo de pruebas.
    Si usted hace esto con (CMD + N) asegúrese de que solo objetivo
    la Prueba de Paquete (es decir. ‘AppNameTests’).

    Supongo que sólo estos .xctest paquetes tienen acceso a la
    XCTest Marco.

  8. 3

    Yo tenía el mismo problema después de cambiar el nombre de mi Destino nombre y mover las cosas. Resultó que mis pruebas fueron parte de mi Objetivo Principal. Asegúrese de que todos tus archivos de prueba pertenecen sólo a su patrón de prueba.

    Sólo tienes que seleccionar una .m archivo, asegúrese de que usted tiene el derecho panel abierto.

    XCTest errores de compilación para la prueba objetivo de Xcode 5:

    • woohoo! bueno! gracias por publicar esto. solucionado mi problema.
  9. 1

    Tuve el mismo problema cuando se trató de construir XCTTest basado en la unidad de pruebas con pre-7.0 SDK. Cuando elegí 7.0 como mi Base SDK entonces que tipo de enlace de error desapareció.

  10. 1

    Tenido el mismo problema, pero terminó con algo un poco diferente solución.

    seleccione XCTest.marco y asegúrese de que sólo su carpeta de prueba se comprueba el marco de la Meta de Afiliación.

    XCTest errores de compilación para la prueba objetivo de Xcode 5:

  11. 0

    Asegúrese de que el Marco de la Búsqueda de Ruta (FRAMEWORK_SEARCH_PATHS) para la YourProjectTests objetivo incluye la ruta de acceso $(SDKROOT)/Developer/Library/Frameworks, y que esta es la lista antes de $(inherited).

    En mi caso, los dos caminos estaban presentes, pero $(inherited) fue la primera.

    De crédito va a https://stackoverflow.com/users/181947/brian-clear en Apple Mach-O enlazador (id) advertencia : edificio para MacOSX, pero la vinculación con dylib construido para iOS

Dejar respuesta

Please enter your comment!
Please enter your name here