J'ai importé un fichier Obj-C dans mon projet Swift et Xcode m'a automatiquement invité à créer un fichier d'en-tête de pontage comme prévu. Cependant, j'ai supprimé les deux fichiers (déplacés vers la corbeille) pour apporter des modifications, mais lorsque j'essaie d'importer à nouveau le fichier Obj-C, l'invite n'apparaît plus. Quelle est la raison? J'ai même testé ce même scénario dans un autre projet. Il semble qu'une fois que j'ai supprimé l'en-tête de pontage créé automatiquement par Xcode, il ne remettra pas l'invite de nouveau à nouveau. Pourquoi est-ce?
La raison de votre problème est que les paramètres de construction de Xcode contiennent toujours le chemin du fichier d’en-tête de pontage généré automatiquement. Vous ne pouvez pas obtenir d'erreur de génération car le fichier d'en-tête (ProjectName-Bridging-Header.h)
existe toujours dans votre répertoire de projet.
Comment résoudre:
Cliquez sur la cible de votre projet, allez dans l'onglet Construire les paramètres ( choisissez tous au lieu de basic ), recherchez Bridging Header. Vous pouvez voir l'entrée de chemin générée par Xcode. Sélectionnez-le et cliquez sur le bouton Supprimer.
Assurez-vous également de supprimer le fichier d'en-tête de pontage généré automatiquement par Xcode (ProjectName-Bridging-Header.h)
de votre répertoire de projet Xcode.
Maintenant, essayez d'importer à nouveau le fichier Obj-C. Vous pouvez voir l'invite pour créer un fichier d'en-tête de pontage comme prévu.
Fichier -> Nouveau fichier -> Fichier d'en-tête
Enregistrez-le en tant qu'en-tête YourApp-Bridging
Ensuite, allez dans Paramètres de construction, recherchez "En-tête de pontage Objective-C" (comme indiqué précédemment) et passez à votre en-tête de pontage en tant que: YourApp/YourApp-Bridging-Header.h Où "YourApp /" est un nom d'application. Il peut contenir des espaces, par exemple "Votre application /".
Dans mon cas, dans xCode 7.3.1 cela fonctionne
Il existe différentes façons de créer un en-tête de pontage dans xcode en mentionnant/suggéré ci-dessus. Ici, je voudrais vous donner le meilleur moyen de créer Bridge.
si vous souhaitez conserver votre en-tête dans un groupe, utilisez Nouveau groupe et faites glisser votre fichier dans ce groupe.
Ne créez jamais de dossier, sinon vous obtiendrez une erreur à cause de cela.
jetez un coup d’œil sous les paramètres de votre projet -> paramètres de construction, faites défiler jusqu’à la section User-Defined
, voyez s’il possède une clé appelée Swift_OBJC_BRIDGING_HEADER
et si elle a une valeur. si c'est là qu'il pense probablement que vous en avez déjà un, dans ce cas, recréez simplement le fichier portant le même nom.
Fichier de pont uniquement Invite une fois dans un projet.
Si vous supprimez le fichier par accident, vous devez créer un nouveau fichier pont. C'est le même.
Aller à File->New File->Header File
, et le nom devrait être YourProjectName-Bridging-Header
, sinon Il ne peut pas être reconnu.
Si vous souhaitez le configurer manuellement, allez simplement dans Paramètres de construction et modifiez la sélection en ALL de Basique (par défaut) ou personnalisé.
Comme les champs vides sont masqués pour faciliter la tâche de l'utilisateur final moyen, si vous manquez l'invite pour ajouter l'en-tête de pontage, vous aurez peut-être de la difficulté à le trouver manuellement. De plus, l'option de recherche n'inclut pas les champs cachés.
Changer à tout et le compilateur Swift - la section Général devrait apparaître avec un paramètre enfant de "En-tête de pontage Objective-C"