Après les instructions, j'ai créé un en-tête de pontage et ajouté à mon projet. Malheureusement, l'erreur suivante s'est produite:
: 0: erreur: impossible d'importer l'en-tête Objective-C '--- path - to --- header/.... h'
Dans les paramètres de construction, j'ai ajouté une chaîne de chemin de recherche d'en-tête à l'emplacement de l'en-tête de pontage, mais rien n'y faisait.
Quelqu'un a-t-il eu ce problème?
Soyez prudent d'ajouter le fichier dans le dossier que votre erreur se plaint! J'ai fait la même erreur, si vous créez le fichier à partir de Xcode, il ira dans le dossier: Projet-> Projet-> Header.h
Et Xcode recherche Project-> Header.h
Cela signifie que vous devez placer le fichier dans le dossier de votre projet (Nom du projet -> Nom du projet)!
J'espère que ça t'as aidé ;)
MISE À JOUR: Je ne suis pas sûr d'avoir compris ce que vous voulez dire, mais essayez ceci pour résoudre votre problème:
1. Supprimez tous vos fichiers de pontage que vous avez créés jusqu'à présent.
2. Sélectionnez le dossier principal du projet et cliquez sur nouveau fichier-> iOS-> Fichier d'en-tête.
3. Ecrivez vos importations dans le fichier d’en-tête créé.
4. Sélectionnez le projet dans Xcode-> Paramètres de construction, tapez dans le champ de recherche: pontage et insérez dans la clé Swift_OBJC_BRIDGING_HEADER le nom de votre fichier d’en-tête ou son chemin!
Si vous suivez ces étapes, votre fichier d’en-tête sera créé au bon endroit!
: D J'espère que ça aide!
Dans mon cas, il s’agissait d’une erreur résultant d’une référence circulaire. J'avais une classe importée dans l'en-tête de pontage et le fichier d'en-tête de cette classe importait l'en-tête Swift (<MODULE_NAME>-Swift.h
). Je faisais cela parce que dans le fichier d'en-tête Obj-C je devais utiliser une classe déclarée dans Swift, la solution consistait simplement à utiliser le déclaratif @class
.
Donc, fondamentalement, l'erreur disait "Impossible d'importer l'en-tête de pontage", l'erreur ci-dessus indiquait que le fichier <MODULE_NAME>-Swift.h
était introuvable. Cette erreur était une erreur pointant vers un fichier d'en-tête Obj-C spécifique (à savoir un contrôleur de vue).
En inspectant ce fichier, j'ai remarqué qu'il contenait le -Swift.h déclaré dans l'en-tête. Le déplacement de cette importation vers l'implémentation a résolu le problème. Donc j’avais besoin d’utiliser un objet, appelons-le MyObject
défini dans Swift, aussi j’ai simplement changé l’en-tête pour dire
@class MyObject;
Trouvez le chemin à:
Paramètres de construction Comp Compilateur Swift Génération de code En-tête de pontage Objective-C
et supprimez ce fichier. Alors ça devrait aller.
Cela ne concernera probablement qu'un faible pourcentage de personnes, mais dans mon cas, mon projet utilisait CocoaPods et l'une de ces nacelles avait une sous-spécification avec ses propres CocoaPods. La solution consistait à utiliser les importations sous tous les angles pour référencer tous les fichiers des sous-modules.
#import <HexColors/HexColor.h>
Plutôt que
#import "HexColor.h"
Pour moi, la suppression de données dérivées corrigée, j'ai remarqué que même si je vérifiais à partir d'un ancien commit, le même problème se produisait.
Vous pouvez accéder à cette option sous Fenêtre-> Projets.
"nous devons dire Xcode où chercher les fichiers d'en-tête nous Inscrivez-vous dans notre en-tête de pontage . Recherchez la section Chemins de recherche et modifiez le paramètre au niveau du projet pour l'utilisateur . En-tête des chemins de recherche , ajout d’une entrée récursive pour le répertoire 'Pods': Pods/ ** " http://swiftalicio.us/2014/11/using-cocoapods-from-Swift/
Pour moi, c'est parce que j'ai oublié de l'ajouter aux paramètres de construction de la cible.
J'ai également rencontré ce problème et, malheureusement, il ne s'agit que d'un bogue dans le SDK + Xcode. J'ai discuté avec un ingénieur de la WWDC de ce problème et de quelques autres problèmes que je rencontrais avec CloudKit. Ces bugs seront traités dans la prochaine graine de Xcode.
C'est la partie amusante de l'utilisation du logiciel bêta.
pour ceux qui ont du mal à ajouter Swift class dans le projet objective-c. c'est ce qui fonctionne pour moi:
et c'est tout. Créez maintenant la classe Swift dans votre code, comme s'il s'agissait de objective-c.
J'ai importé dans certains fichiers à partir de fichiers d'en-tête bridgin à partir de cocoapods pas de manière appropriée.
Au lieu d'importer
#import <SomeCocoaPod/SomeCocoaPod.h>
J'ai écrit
#import "SomeCocoaPod.h"
Et ce fut mon énorme erreur
Pour moi, il ne s'agissait pas de sélectionner "Copier les éléments si nécessaire" dans le chemin de destination lors de l'ajout de la structure. Rajoutez simplement le framework avec cette option sélectionnée.
Ajoutez un fichier temporaire Objective-C à votre projet. Vous pouvez lui donner le nom de votre choix.
Sélectionnez Oui pour configurer un en-tête de pontage Objective-C.
Supprimez le fichier Objective-C temporaire que vous venez de créer.
Dans le fichier projectName-Bridging-Header.h que vous venez de créer, ajoutez cette ligne:
'# import <GoogleMaps/GoogleMaps.h>'
Editez le fichier AppDelegate.Swift:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
GMSServices.provideAPIKey("AIza....") //iOS API key
return true
}
Suivez le lien pour un échantillon complet
J'ai rencontré ce type d'erreur en ajoutant une extension Aujourd'hui à mon application. La cible de génération pour l'extension a été générée avec le même nom d'en-tête de pontage que la cible de génération de mon application. Cela entraînait l'erreur, car l'extension ne voyait pas les fichiers répertoriés dans l'en-tête de pontage de mon application.
La seule chose que vous devez faire est de supprimer ou de changer le nom de l’en-tête de pontage pour l’extension et tout ira bien.
J'espère que cela vous aidera.
J'ai le même problème pour une raison différente, voici mon cas Je construis un projet qui doit inclure un menu de diapositives, j'utilise SWRevealViewController lib pour l'aborder.
lorsque j'importe les fichiers de bibliothèque, j'ajoute un sous-dossier (SWRevealViewController) sous Fichiers de prise en charge pour les fichiers .h && .m. Il génère deux erreurs. Impossible d'importer le pont. SWRevealViewController.h est introuvable.
Comment je le répare
lorsque je déplace des fichiers directement dans Supporting Files (sous-dossier de suppression), SWRevealViewController.m est ajouté automatiquement à Build Phases -> Compile Sources et le problème a disparu.
Après quelques jours de lutte, j'ai finalement réussi à intégrer l'abonnement Facebook à mon application iOS. Voici les étapes (je suppose que vous avez déjà installé le SDK version 4.1 ou supérieure de Facebook dans vos machines):
Ajouter des informations dans la liste comme mentionné ici
Construisez votre application. Et wohoo! pas d'erreur de compilation.
Parmi les autres correctifs, l'erreur s'est produite lorsque j'ai essayé de faire Product-> Archive. Il s'avère que j'ai eu ceci:
Objective-C Bridging Header
Debug (had the value)
Release (had the value)
Any architecture | Any SDK (this was blank - problem here!)
Après l'avoir défini dans cette dernière ligne, cela a fonctionné.
Réglez en-tête de pontage de précompilation sur Non résolvez le problème pour moi.
J'ai en fait créé un fichier source OSX Source OSX sous le projet (où se trouvent tous mes fichiers Swift).
J'ai ajouté les importations, puis supprimé le fichier . M.
Avait un problème similaire qui ne pourrait pas être résolu par une solution ci-dessus. Mon projet utilise CocoaPods. J'ai remarqué qu'avec les erreurs, j'ai reçu un avertissement avec le message suivant:
Uncategorized: Target 'Pods' of project 'Pods' was rejected as an implicit dependency for 'Pods.framework' because its architectures 'arm64' didn't contain all required architectures 'armv7 arm64'
Donc la solution était assez simple. Pour le projet Pods, remplacez l'indicateur Générer l'architecture active uniquement par Non et l'erreur d'origine a disparu.