2010-07-28 22 views
41

Tengo un problema que surgió cuando actualicé mi versión de xcode. Yo uso pruebas unitarias, y ahora cuando trato de importar SenTestingKit (#import <SenTestingKit/SenTestingKit.h>), aparece este error: SenTestingKit/SenTestingKit.h: No such file or directory.Xcode - SenTestingKit no encontrado

He mirado en mi configuración de generación, y tengo las siguientes opciones de configuración:

== Linking == 
Other Linker Flags: -framework Foundation -framework SenTestingKit -framework UIKit 
Prebinding: No 

== Search Paths == 
Debug Configutation: "/iphonesimulator4.0/Developer/Library/Frameworks" "/Xcode4/Library/Frameworks" 

He comprobado /Xcode4/Library/Frameworks, y el directorio SenTestingKit.framework/es allí.

Entonces, ¿qué es lo que me falta?

+1

Sam, todo el software de Apple en prelanzamiento está bajo un SDK, por lo que no (leer: probablemente no debería) poder discutirlo fuera de los foros de desarrolladores de Apple. Publica allí, archiva un error. – typeoneerror

+5

Typeoneerror, te refieres a un NDA. Es un SDK. –

+0

Preguntas como esta se preguntan mejor en los foros de desarrolladores de Apple, donde es más probable que obtenga una respuesta. – Abizern

Respuesta

0

Es posible que desee comprobar que Xcode es el control de las rutas de búsqueda Marco: Framework Search Paths

+0

Sí. Agregué $ {DEVELOPER_LIBRARY_DIR}/Frameworks a las rutas de búsqueda de Framework y eso lo solucionó. –

1

Para mis Marco de rutas de búsqueda, he añadido explícitamente /$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/Developer/Library/Frameworks. Compila correctamente para simulador y dispositivo.

Estoy seguro de que existen variables de entorno para que funcione en todas las versiones de SDK, por lo que actualizaré la respuesta si las encuentro.

screenshot

+0

Esto resolvió el problema para mí. Es decir, agregué el marco de esa ruta, y Xcode 4 actualizó automáticamente los SearchPaths de Framework después de eso. Inicialmente intenté usar SenTestingKit.framework en $ (DEVELOPER_DIR)/Library/Frameworks /, pero eso no funcionó. –

57

tenía este mismo problema al crear un nuevo caso de prueba en XCode. Sin embargo, esto se debió a la estupidez de mí al seleccionar el objetivo equivocado al crear el caso de prueba.

Usando "Archivo nuevo ...", el caso de prueba se estaba incluyendo y compilando con la configuración de la aplicación de destino en lugar del objetivo del caso de prueba. Verificando la pestaña de Fases de compilación y buscando en la divulgación de "Fuentes de compilación" revelé mi problema particular.

+2

¡Gracias, ese es el truco! –

+0

Sí, esto funcionó. Hice esto anteriormente, pero creo que AppCode lo reinició. Si usa la verificación doble de AppCode. – vaughan

+0

Ojalá pudiera votar dos veces – DCMaxxx

6

tuve este problema porque hay un espacio en la instalación de Xcode: /Xcode 4.0.2

me fijo mediante la adición de "${DEVELOPER_LIBRARY_DIR}/Frameworks" (con las comillas) a mis Marco de rutas de búsqueda.

+0

En mi caso, también tuve que agregar comillas alrededor de '$ (SDKROOT)/Developer/Library/Frameworks'. – azdev

+0

O simplemente use '$ (DEVELOPER_FRAMEWORKS_DIR_QUOTED)';) – Pascal

18

Tuve este problema después de actualizar a xcode 4.3. Nada parecía funcionar hasta que me encontré con this post. Ya tenía las mismas rutas de búsqueda, pero cambiar el orden resolvió el problema.

Por lo tanto, a partir del artículo, necesita los dos valores siguientes en sus rutas de búsqueda de Framework, en este orden.

$(SDKROOT)/Developer/Library/Frameworks 
$(DEVELOPER_LIBRARY_DIR)/Frameworks 
+0

Eso es porque (SDKROOT)/Developer/Library/Frameworks es arm, $ (DEVELOPER_LIBRARY_DIR)/Frameworks es intel – valexa

+0

@velexa - Entonces, su punto es que el segundo es innecesario o...? De todos modos, solo transmití la información que tenía este problema y la solución en ese foro pareció funcionar. – DougW

+0

solo estoy explicando por qué funciona su solución, sí, es innecesario agregar caminos a las construcciones de marco de inteligencia para un objetivo de brazo – valexa

1

Para aclarar esto de una vez por todas, hay tres marcos SenTestingKit en Xcode SDK, uno es para OS X, uno es para iOS y uno es para el simulador.

Tenía que ejecutó "lipo -info" en ellos habrían visto que

Arquitecturas en el archivo de la grasa: /Developer/Library/Frameworks/SenTestingKit.framework/Versions/A/SenTestingKit son: i386 x86_64

Arquitecturas en el archivo de la grasa: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit es la arquitectura: ARMv7

sin grasa file: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/Developer/Library/Frameworks/SenTestin gKit.framework/SenTestingKit es architecture: i386

+0

Aún no lo aclara. Cuando seleccionas agregar framework en xcode solo te da la opción de "SenTestingKit", no te permite seleccionar uno específico que no sea osx. – imaginethepoet

+0

Eso es malo Xcode para ti, siempre solo arrastro manualmente la carpeta de framework desde Finder a Xcode y disfruto como los 90 – valexa