web-dev-qa-db-fra.com

Le fichier d'en-tête de pontage rapide ne fonctionnera pas avec use_frameworks

J'essaie d'utiliser la bibliothèque GoogleidentityToolkit pour gérer les connexions et les choses. J'active use_frameworks! sur mon fichier pod, mais le module GITkit est introuvable. J'essaie de comprendre ce qui se passe. Autant que je sache, si vous utilisez "use_frameworks", vous n'avez pas besoin de créer de fichier d'en-tête de pontage, car cocoapods compile la bibliothèque en un seul module. Vous pouvez donc importer ultérieurement comme d'habitude sur vos fichiers * .Swift.

De quoi ai-je besoin pour utiliser la bibliothèque Google Identity Toolkit dans Swift?


Cette question a été posée une semaine après la sortie de CocoaPods 1.0.0 (à une époque où CocoaPods 0.39.0 était toujours populaire) et la version disponible de Google Identity Toolkit était 1.1.3 à partir de 2015, mais est devenue obsolète en faveur de l'authentification Firebase (pod 'FirebaseUI/Auth') après Google I/O 2016.

11
AXSM

A) Créez un fichier d'en-tête de pontage nommé "ProjectName-Bridging-Header.h" dans le dossier racine de votre projet.

B) Accédez aux paramètres de construction du projet et définissez les valeurs suivantes:

  • "Installer l'en-tête de compatibilité objective-c":OUI
  • "En-tête de pontage Objective-C": chemin de votre en-tête de pontage (par exemple "NomProjet/NomProjet-Pontage-Header.h"

Ensuite, vous pouvez utiliser le fichier d’en-tête pour importer tous vos fichiers ObjectiveC que vous souhaitez utiliser dans le code Swift.

NOTE: si nécessaire, définissez le chemin en tant que récursif à la fois dans les en-têtes de ressources et dans la section de recherche du compilateur Swift.

26
Pavan Gandhi

Aucune des réponses ci-dessus n'a fonctionné pour moi ou n'était pas assez précis. Dans Xcode 10.0 (Swift 4.2), cette solution a fonctionné pour moi: 

1. Créez un nouveau fichier d'en-tête dans le répertoire racine de votre projet. Je ne sais pas si le nom du fichier a vraiment de l'importance, mais les fichiers d'en-tête de pontage générés automatiquement par Apple sont nommés "ProjectName-Bridging-Header.h".

2. Ajoutez toutes les importations nécessaires au nouveau fichier créé. 

3. Dans Project Navigator, cliquez sur le nom de votre projet.

4. Dans la barre supérieure, choisissez "Construire les paramètres", et dans la barre un peu plus basse, choisissez Tous et Combiné

 enter image description here

5. Recherchez "Swift Compiler _" dans le coin supérieur droit.

6. Recherchez l'onglet "Swift Compiler-General", développez-le et double-cliquez sur le côté droit de "en-tête de pontage Objective-C".

 enter image description here

7. Tout ce que vous avez à faire maintenant, c'est de faire glisser le fichier d'en-tête de pontage que vous avez créé dans la fenêtre contextuelle et d'appuyer sur Entrée. Vous êtes tous ensemble!

* N'oubliez pas que vous devez mettre à jour le chemin d'accès à votre en-tête de pontage chaque fois que le chemin direct du projet change. 

8
Bartosz Kunat
  1. Ajoutez un nouveau fichier à Xcode (Fichier> Nouveau> Fichier), puis sélectionnez «Source» et cliquez sur «Fichier d'en-tête».
  2. Nommez votre fichier «YourProjectName-Bridging-Header.h». 
  3. Créez le fichier.
  4. Accédez aux paramètres de construction de votre projet et recherchez la section «Compilateur Swift - Génération de code». Vous trouverez peut-être plus rapide de taper «Compilateur rapide» dans le champ de recherche pour affiner les résultats. Remarque: Si vous n’avez pas de section «Compilateur Swift - Génération de code», cela signifie que vous n’avez probablement pas encore ajouté de classes Swift à votre projet. Ajoutez un fichier Swift, puis réessayez.
  5. En regard de «En-tête de pontage Objective-C», vous devrez ajouter le nom/chemin de votre fichier d’en-tête. Si votre fichier réside dans le dossier racine de votre projet, indiquez simplement le nom du fichier d’en-tête. Exemples: "NomProjet/NomProjet-Bridging-Header.h" ou simplement "NomProjet-Bridging-Header.h". Ou, faites simplement glisser un fichier d'en-tête de pontage du Finder dans ce champ vide. Cela ajoutera automatiquement le chemin du fichier d’en-tête de pontage.
  6. Ouvrez l'en-tête de pontage que vous venez de créer et importez vos classes Objective-C à l'aide d'instructions #import. Toutes les classes répertoriées dans ce fichier pourront être consultées à partir de vos classes Swift.
4
MS_iOS

Le moyen le plus simple que j'ai trouvé est de créer un faux fichier .Swift dans XCode. Cela devrait afficher l'invite pour créer automatiquement un en-tête de pontage.

  1. Fichier > Nouveau > Fichier ...
  2. Pour le type de fichier, choisissez Swift.
  3. Autoriser Xcode à créer manuellement l'en-tête Swift Bridging.
  4. Supprimez le fichier .Swift que vous avez créé à l'origine.
4
Mapsy

Swift 4 et Xcode 9.3

  1. Créez un fichier d’entête de pontage:

    • Xcode> Fichier/Nouveau .../Fichier> Fichier d'en-tête
    • Nommez le fichier "ProjectName-bridging-header.h"
    • Enregistrer à la racine de votre dossier de projet
  2. Xcode> Accéder aux paramètres de construction (dans le volet Explorateur de projets, sélectionnez l'élément le plus haut, qui devrait correspondre au nom de votre projet. Dans le volet de droite, sélectionnez la rubrique "Paramètres de construction".)

    • Juste en dessous de "Paramètre de construction" assurez-vous que "Tous" et "Combinés" sont sélectionnés
    • Dans le champ de recherche, tapez "Compilateur Swift" et recherchez "En-tête de pontage Objective-C".
    • Réduisez-le et double-cliquez à sa droite pour le modifier.
    • Insérez le nom de fichier 1. ci-dessus -> " NomProjet / NomProjet-bridging-header.h" (notez le chemin du dossier si le fichier de pontage est enregistré dans le dossier du projet)
  3. Inclure le #import nécessaire

2
Matt

Commencez par créer un fichier d’en-tête de liaison avec "projectname-bridging-header.h" au niveau de votre projet.

Maintenant, dans les paramètres de construction, définissez le chemin du fichier d’en-tête de pontage et son en-tête de compatibilité objc.

Une fois cela fait, nettoyez et construisez bien votre projet.

0
Lotus Shah