2012-03-05 17 views
18

He estado siguiendo esta entrada del blog: Adding unit tests to existing project.OCUnit prueba al proyecto de iOS existente. "Ld: archivo no encontrado"

estoy recibiendo este error, sin embargo:

LD: Archivo no encontrado: construcción/Productos/Depuración iPhoneOS/MyApp.app/MiApl Comando /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang falló con el código de salida 1

tengo mis propiedades objetivo prueba,

Bundle cargador = $ (BUILT_PRODUCTS_DIR) /MyApp.app/MyApp

anfitrión de prueba = $ (BUNDLE_LOADER)

(lo que equivale a la vez: la construcción/debug-iPhoneOS/MiApl. aplicación/MyApp)

Creo que esas variables no apuntan a la misma ubicación que el compilador. "build/Debug-iphoneos/..." vs "Build/Products/Debug-iphoneos/..."

Podría estar totalmente equivocado en esa suposición, pero de cualquier forma, ¿alguien sabe qué está causando este error o ¿Cómo arreglaría esas variables de entorno?

Gracias por cualquier ayuda,

Sam

+1

Tal vez usted tiene un sistema de archivos entre mayúsculas y minúsculas y tienen el caso contrario en una carta? He visto ese antes. – fisk

Respuesta

18

Adéntrate en ~/Library/desarrollador/Xcode/DerivedData, hacia abajo en su proyecto. A partir de ahí, siga la ruta del Bundle Loader. Vea lo que está realmente allí.

Ahora observe su Info.plist (o la configuración de información de su destino) y busque "Archivo ejecutable" o CFBundleExecutable. Si es ${EXECUTABLE_NAME}, verifique la configuración de "Nombre del producto" de su destino.

+5

Otra cosa que debe verificar es la configuración del 'Bundle Loader' para su objetivo de prueba de unidad. Eso hizo que la ruta al ejecutable de la aplicación fuera codificada en su mayoría cuando se creó el proyecto Xcode 4. (Desde entonces, he cambiado el nombre del producto en el objetivo de la aplicación y el objetivo de la prueba de la unidad no tenía idea al respecto). – zekel

+0

Tuve el mismo problema y esto fue resuelto. El problema es que había cambiado el nombre al objetivo principal, y luego Xcode se perdió. – Giovanni

+0

CMD + Shift + K para "limpiar proyecto" nunca lastimó a nadie tampoco ... – zeroasterisk

6

Me encontré con el mismo problema, no tenía sentido ya que la ruta que estaba utilizando para el ejecutable realmente existía. Echar un vistazo de cerca al comando de compilación reveló que había un espacio extra en la ruta del cargador que era el problema.

+5

Gracias! Encontrar esto me ha ahorrado algo de tiempo. Me estaba volviendo loco: estaba obteniendo un archivo que no se encontraba repetidamente en un cargador de paquetes que claramente existía. En el editor de configuración de compilación, '$ (BUILT_PRODUCTS_DIR)/FSMTest.app/FSMTest' no es lo mismo que' $ (BUILT_PRODUCTS_DIR)/FSMTest.app/FSMTest' (es decir, con un espacio anterior). ¿Podría Apple no haber diseñado el diálogo del editor de configuraciones con un mínimo de comprobación? – Cris

+1

En una nota similar, tampoco coloque comillas dobles, incluso si tiene espacios en el nombre de su aplicación. –

+1

Para ser claros, no ponga * cualquier * comillas alrededor de esto. Ni las comillas dobles ni las únicas funcionaron para mí, pero ninguna cita funcionó. –

0

Buscando "Rutas de búsqueda" dentro de Configuraciones de compilación. Probablemente existan rutas inexistentes en "Rutas de búsqueda de marcos" o en otras rutas como Rutas de búsqueda de bibliotecas

0

Existe la posibilidad de que haya cambiado el nombre de la aplicación después de crear su proyecto. Entonces, el nombre de su proyecto y aplicación son diferentes. En la ruta, use el nombre de su aplicación como aparecería en iTunes Store en lugar de su nombre de proyecto.

0

Tuve el mismo problema antes y resolví esto revisando las Configuraciones de compilación -> SDK base de mi objetivo de prueba unitario, y me aseguro de que sea correcto según el tipo de proyecto (OSX o iOS).

0

En su PODFILE asegurarse de que ha incluido sus pruebas como un objetivo

objetivo '' hacen YourAppNameTests use_frameworks! pod 'AFNetworking', '2.6.0' vaina 'TYMProgressBarView' final

Esto añadirá automáticamente Enlace binario con Bibliotecas Marco

enter image description here

Cuestiones relacionadas