J'ai mis à jour Xcode vers la version 8.3 (8E162) et dans mon fichier de test unitaire, j'ai l'avertissement suivant:
Importation implicite de l'en-tête de pontage 'myframe-Bridging-Header.h' via Le module 'myframe' est obsolète et sera supprimé dans une version ultérieure de Swift
sur cette ligne:
@testable import myframe
Comment résoudre cet avertissement?
Cet article m'a aidé à résoudre l'avertissement: https://bugs.Swift.org/browse/SR-3801
J'ai sélectionné:
chaînez l'importation en ajoutant #import "App-Bridging-Header.h" à n'importe quel fichier en-tête de pontage de test unitaire existant que vous avez
Cela n’a donc rien à voir avec cette ligne en soi (qui m’a jeté pour une boucle) et vous n’êtes pas censé la changer. Ce qui se passe, c’est que le @testable import
devrait normalement importer automatiquement l’en-tête de pontage de modules également, ce qui n’est plus le cas maintenant.
Comme SR-3801 indique que la solution consiste à:
- importer explicitement l'en-tête de pontage d'application dans vos tests unitaires (via un paramètre de construction) ou
- chaînez l'importation en ajoutant #import "App-Bridging-Header.h" à tout en-tête de pontage de test d'unité existant
J'ai déjà eu un Test-Bridging-Header.h
où j'ai ajouté #import "MODULE-Bridging-Header.h"
dans le cadre de la solution 2, ce qui me semble préférable. Maintenant, le test ponte les chaînes d'en-tête dans l'en-tête de pont de module et l'avertissement disparaît.
Un cas un peu différent (cadre et pas de test unitaire):
J'ai eu un projet combinant Swift et ObjC (ce qui signifie que j'avais déjà un en-tête de pont). Le projet a intégré un cadre tiers. L'avertissement a cédé lorsque le cadre a été ajouté (criant sur leur tête de pont). Je viens d'importer leur en-tête dans mon en-tête de pont existant :
#import <ThirdPartyFramework/ThirdPartyFramework-Bridging-Header.h>
Et avertissement supprimé.
Xcode 9.4.1 Swift 4.1