Xcode – SenTestingKit non trouvé

J’ai un problème qui a surgi lorsque j’ai mis à jour ma version de xcode. J’utilise des tests unitaires, et maintenant j’essaie d’importer SenTestingKit ( #import ), j’obtiens cette erreur: SenTestingKit/SenTestingKit.h: No such file or directory .

J’ai examiné mes parameters de construction et j’ai les options de configuration suivantes:

 == Linking == Other Linker Flags: -framework Foundation -framework SenTestingKit -framework UIKit Prebinding: No == Search Paths == Debug Configutation: "/iphonesimulator4.0/Developer/Library/Frameworks" "/Xcode4/Library/Frameworks" 

J’ai vérifié /Xcode4/Library/Frameworks , et le SenTestingKit.framework/ est là.

Alors qu’est-ce qui me manque?

J’ai eu ce même problème lors de la création d’un nouveau scénario de test dans XCode. Cependant, cela était dû à la stupidité de ma sélection de la mauvaise cible lors de la création du scénario de test.

En utilisant “Fichier Nouveau …”, le scénario de test était inclus et compilé avec les parameters de l’application cible au lieu de la cible du scénario de test. La vérification de l’onglet Build Phases et la recherche dans la publication “Comstackr les sources” ont révélé mon problème particulier.

J’ai eu ce problème après la mise à niveau vers xcode 4.3. Rien ne semblait fonctionner jusqu’à ce que je tombe sur ce post . J’avais déjà les mêmes chemins de recherche, mais la modification de l’ordre résolvait le problème.

Donc, à partir de cet article, vous avez besoin des deux valeurs suivantes dans vos chemins de recherche de structure, dans cet ordre .

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

J’ai eu ce problème parce qu’il y a un espace dans mon installation Xcode: /Xcode 4.0.2

Je l’ai corrigé en ajoutant "${DEVELOPER_LIBRARY_DIR}/Frameworks" (avec les guillemets) à mes chemins de recherche de structure.

Pour mes chemins de recherche dans le framework, j’ai explicitement ajouté /$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/Developer/Library/Frameworks . Comstack correctement pour le simulateur et le périphérique.

Je suis sûr qu’il existe des variables d’environnement pour que cela fonctionne avec les versions de SDK, donc je mettrai à jour la réponse si je les trouve.

capture d'écran

Pour clarifier cela une fois pour toutes, il existe trois frameworks SenTestingKit dans Xcode SDK, un pour OS X, un pour iOS et un pour le simulateur.

Aviez-vous couru “lipo -info” sur eux?

Architectures dans le gros fichier: /Developer/Library/Frameworks/SenTestingKit.framework/Versions/A/SenTestingKit sont: x86_64 i386

Architectures dans le gros fichier: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit est architecture: armv7

Fichier non-gras: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit est l’architecture: i386

Vous voudrez peut-être vérifier que Xcode vérifie les chemins de recherche du framework: Chemins de recherche du cadre