J'ai un problème qui est apparu lorsque j'ai mis à niveau ma version de xcode. J'utilise des tests unitaires et lorsque j'essaie d'importer SenTestingKit (#import <SenTestingKit/SenTestingKit.h>
), le message d'erreur suivant s'affiche: SenTestingKit/SenTestingKit.h: No such file or directory
.
J'ai consulté mes paramètres de construction et je dispose des 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 répertoire SenTestingKit.framework/
est là.
Alors qu'est-ce qui me manque?
J'ai eu le 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 en cours d'inclusion et compilé avec les paramètres de l'application cible au lieu de la cible du scénario. Le fait de consulter l'onglet "Phases de construction" et de rechercher les informations "Compiler les sources" a 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 le changement d'ordre a résolu le problème.
Ainsi, à partir de l'article, vous avez besoin des deux valeurs suivantes dans vos chemins de recherche Framework, 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 de Xcode: /Xcode 4.0.2
Je l'ai corrigé en ajoutant "${DEVELOPER_LIBRARY_DIR}/Frameworks"
(avec les guillemets) à mes chemins de recherche Framework.
Pour mes chemins de recherche de structure, j'ai explicitement ajouté /$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/Developer/Library/Frameworks
. Compile 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 du SDK. Je mettrai donc à jour la réponse si je les trouve.
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.
Si vous aviez fait "lipo-info" sur eux, vous auriez vu ça
Les architectures du fichier fat: /Developer/Library/Frameworks/SenTestingKit.framework/Versions/A/SenTestingKit sont les suivantes: x86_64 i386
Architectures dans le fichier fat: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit is architecture: armv7
Fichier non gras: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit est une architecture: i386
Vous voudrez peut-être vérifier que Xcode vérifie les chemins de recherche du framework: