J'ai ajouté une nouvelle cible de test à mon projet XCode. Mon projet a un code Swift et un code Objective-C, ainsi qu'un en-tête de pontage. Lors de l'ajout de l'en-tête de pontage aux paramètres de construction de UnitTesting ou de l'exécution de import MyTarget
, le message d'erreur suivant s'affiche:
failed to import bridging header
J'ai essayé:
defines modules
en Yes
.J'ai également essayé de créer un exemple de projet, qui s'est construit et a bien fonctionné. Prendre tout ce que j'ai dans un nouveau projet propre n'est pas une option pour le moment.
Si vous utilisez Pod en tant que gestionnaire de paquets, vous devez définir le chemin de recherche, etc.
essayez d'ajouter ceci dans Podfile
target 'YourProductTests' do
inherit! :search_paths
# Pods for testing
end
et pod install
Ça marche pour moi.
Si la solution ci-dessus ne vous convient pas. Essayez de définir manuellement
Cliquez sur votre cible de test -> Paramètre de construction-> onglet: Toutes & Combinée -> Générateur de code Swift Compiler -> En-tête de pontage Objective C: ajoutez votre en-tête xxx-pontage
Cochez "Chemin de recherche", définissez les valeurs de Framework Search Path
, Header Search Paths
, Library Search Path
en fonction de votre cible principale. Peut-être que certains chemins de recherche perdent ici, ajoutez-les à nouveau manuellement.
À ce stade, je n'ai jamais eu à import MyTarget
pour que les tests unitaires fonctionnent dans Swift.
Solutions communes
$(SRCROOT)
pour référencer votre chemin d’en-tête de pontage, assurez-vous qu’il est évalué pour le chemin correct..xcodeproj
avec celui de votre projet en cours et faire correspondre les valeurs pertinentes qui pourraient être différentes.Le système d'en-tête de pontage n'est pas parfait, mais voici quelques problèmes que j'ai rencontrés.
J'ai rencontré le même problème. J'ai fait ce qui suit et le problème de «Impossible d'importer l'en-tête de pontage» est résolu.
Pas:
Référence: Référer ce lien.
La solution @Victor Choy fonctionne pour moi, mais je devais déplacer la cible de test à l'intérieur de la cible du produit comme suit:
target 'YourProduct' do
# Pods for product
target 'YourProductTests' do
inherit! :search_paths
# Pods for product testing
end
end
Cela n'a pas fonctionné pour moi:
target 'YourProduct' do
# Pods for product
end
target 'YourProductTests' do
inherit! :search_paths
# Pods for product testing
end