web-dev-qa-db-fra.com

Échec de l'émission de l'en-tête précompilé pour l'en-tête de pontage

J'ai téléchargé un projet depuis GitHub, puis compilé les fichiers suivants, dont certains sont écrits par OBJ-C et j'ai utilisé un en-tête de pont.

pod ‘SnapKit’
pod ‘MJRefresh’
pod ‘Alamofire’
pod ‘Kingfisher’
pod ‘MBProgressHUD’
pod ‘pop’
pod ‘EVReflection’
pod ‘StreamingKit’
pod ‘iCarousel’
pod ‘ReflectionView’

Lorsque j'exécute le projet avec Xcode 9.0 beta 2, mais malheureusement, le journal des erreurs se présente comme suit:

error: échec de l’émission de l’en-tête précompilé '/var/folders/kd/4gh0_kxx3jx4thjb_sssmmcw0000gn/T/EvoRadio-Bridging-Header-97bd5f.pch'. pour ponter l'en-tête '/Users/ringo/Downloads/EvoRadio-master/EvoRadio/Resources/EvoRadio-Bridging-Header.h'

J'ai googlé, mais pas un tel problème.L'erreur signifie qu'il a besoin d'un fichier PCH? Voici ma configuration d'en-tête .pch:  enter image description here Il ne peut pas le résoudre.

Comment le faire?

18
Ringo

J'ai également eu exactement le même problème (Xcode9 beta 6) après avoir ajouté des cabossons de cacao pour Encrypted Core Data .
Ceci est ma PodFile:

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
pod 'EncryptedCoreData', :git => 'https://github.com/project-imas/encrypted-core-data.git'

target 'Root' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Root

  target 'RootTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'RootUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

Solution:
1 J'ai ajouté $(inherited) non-recursive à Search Path -> Header Search Paths
2 Puis ajouté ${PODS_ROOT} recursive à Search Path -> User Header Search Paths
Les deux éléments ci-dessus dans les paramètres de construction cible de mes projets.

Veuillez consulter ces réponses SO:
1 Hériter des chemins de recherche d'en-tête
2 Hériter des chemins de recherche utilisateur

16
D4ttatraya

Assurez-vous que vous ouvrez le bon espace de travail, sinon la Podfile n'aura peut-être pas toutes les ressources nécessaires pour la compilation.

J'ai vu cette même erreur sur un projet qui fonctionnait bien auparavant.

J'ai découvert que j'avais accidentellement ouvert le fichier ProjectName.xcodeproj plutôt que le fichier ProjectName.xcworkspace. A ouvert le fichier xcworkspace et hop, le projet fonctionnait à nouveau!

9
BAP

Pour moi, ce problème s'est produit lorsque j'ai ajouté une nouvelle configuration de construction et un nouveau schéma au projet existant.

La solution consistait à exécuter pod install sur le schéma nouvellement créé. Après cela, le projet a été construit avec succès.

6
Aliens

Vous pouvez essayer cette solution. J'ai résolu le même problème de cette façon.

Produit> Schéma> Modifier le schéma> Sélectionnez "Construire" dans le menu de gauche> Rechercher des dépendances implicites

Sous l'onglet de construction, cochez la case "Rechercher les dépendances implicites":

Find implicit dependencies

Puis faites un nettoyage et construisez à nouveau.

5
Okan Yücel

Pour mon cas, j'avais une faute de frappe dans le dossier "Supporting FIles" au lieu de "Supporting Files".

2
Gomfucius

La suppression de Podfile.lock et la réexécution de pod install ont résolu ce problème.

1
Zack Shapiro

Dans mon cas, j'ai eu la même erreur de compilation avec des erreurs supplémentaires telles que "Type inconnu" dans l'un de mes fichiers de projet. J'ai donc ajouté ceci au fichier problématique, et cela a été résolu instantanément. 

#import <UIKit/UIKit.h>

1
Benzi Heler

J'ai eu le même scénario, assurez-vous pour le fichier A que vous avez inclus dans YourProjectName-Bridging-Header.h  

  • si elle utilise une ou plusieurs autres classes, ces dernières sont également incluses avant cela Fichier A
0
iOS_Developer

D'après mon expérience, Xcode est incapable de trouver des fichiers d'en-tête pour les pods/frameworks importés dans le projet. 

Mon expérience de projet avec ceci: Mise à jour de Xcode9.2 - 9.3 où de nombreux cocotiers devaient être mis à jour en raison de définitions implicites maintenant indisponibles ou obsolètes.
J'avais changé le fichier podfile pour inclure désormais 'use_frameworks!'. Suite à cela et après avoir traité d’autres problèmes de compilation, j’ai trouvé l’erreur que vous rencontrez. Je crois ajouter 'use_frameworks! empêchait certains pods prenant en charge la version antérieure à iOS 8 de compiler correctement. Mesures que j'ai prises pour résoudre ce problème:

  1. J'ai essayé de supprimer le répertoire Pods/en utilisant cacao pod deintegrate
  2. J'ai ensuite ouvert le projet avec Xcode et nettoyé le dossier de construction et le projet. (supprimer le contenu dans le dossier de données dérivé) 
  3. J'ai alors pod install encore mais le problème a persisté. 

  4. Finalement, j'ai supprimé la ligne use_frameworks dans Podfile, puis répété les étapes 1 à 3 et le projet était maintenant en mesure de trouver les fichiers d'en-tête manquants. 

0
Randoramma

Il y a tellement de raisons et de choses que l'on peut faire, comme:

Le seul qui fonctionne pour moi est la réponse acceptée dans Xcode 9 - échec de l’émission de l’en-tête précompilé

0
Allen Wang