objective-c xcode - iOS - La construction échoue avec CocoaPods impossible de trouver les fichiers d'en-tête





10 version (21)


J'étais le seul développeur de l'équipe à avoir connu ce même problème, ça a fonctionné parfaitement pour tout le monde, alors j'ai réalisé que ça devait être mon environnement. J'ai essayé un git clone du même projet dans un autre répertoire et il a été compilé parfaitement, puis j'ai réalisé qu'il devait y avoir des éléments de mise en cache de Xcode pour mon projet, quelque part, le dossier DerivedData, il suffit de le supprimer de votre projet, cela a fonctionné pour moi.

Vous pouvez obtenir le chemin et même ouvrir le dossier dans finder en allant à:

Xcode -> Préférences -> Emplacements -> ** DerivedData

J'ai un projet iOS utilisant CocoaPods. Tout fonctionnait bien jusqu'à ce qu'un autre développeur commence à travailler sur le même projet. Il a fait quelques changements (seulement pour coder autant que je sache) et a fait une nouvelle branche dans le repo. J'ai vérifié sa branche et essayé de la construire, mais je reçois une erreur: fichier ASLogger / ASLogger.h introuvable.

Même si je supprime l'ensemble du projet et en fais une nouvelle copie et utilise 'pods install'. l'échec de la construction est toujours là. Avez-vous une idée du problème? Si vous avez besoin de plus d'infos, il suffit de demander.




Mettre à jour

Je l'ai mis à jour depuis ma réponse originale, qui a obtenu le downvote, donc j'espère que cela aide. Et si c'est le cas, j'espère que mon vote reviendra.

Si les en-têtes ne sont pas importés, vous avez probablement un conflit dans le HEADER_SEARCH_PATHS . Essayez d'ajouter $(inherited) aux chemins de recherche d'en-tête dans vos paramètres de construction pour vous assurer qu'il extrait les chemins de recherche inclus dans le fichier .xcconfig de vos CocoaPods.

Ceci devrait aider avec n'importe quels conflits et obtenir votre source importée correctement.







Le wiki donne un conseil sur la façon de résoudre ce problème:

Si Xcode ne trouve pas les en-têtes des dépendances:

Vérifiez si les fichiers d'en-tête de pod sont correctement liés par un lien symbolique dans Pods / Headers et si vous ne surchargez pas HEADER_SEARCH_PATHS (voir # 1). Si Xcode ne peut toujours pas les trouver, en dernier recours, vous pouvez ajouter vos importations, par exemple #import "Pods / SSZipArchive.h".




Voici ce qui a fonctionné pour moi:

Accédez à l'onglet Cible> "Paramètres de construction" et recherchez le paramètre "Chemins de recherche d'en-tête utilisateur".

Définissez ceci sur "$ (BUILT_PRODUCTS_DIR)" et cochez la case "Récursif".

La cible construite recherche maintenant le répertoire de construction partagé de l'espace de travail pour localiser les fichiers d'en-tête liables.

====

METTRE À JOUR

J'ai eu un problème similaire (bien que légèrement différent) récemment. Il s'est avéré que Xcode ne pouvait pas trouver les modules parce que j'avais ouvert le fichier .xcodeproj plutôt que le fichier .xcworkspace . Peut aider les autres dans le futur.




J'ai dû télécharger le zip du hub git et faire glisser les fichiers manquants dans le Finder aux chemins correspondants dans Pod / ...




Si vous avez eu les erreurs de construction après une " installation de pod " ou une " mise à jour de pod ", il se peut que l'un de vos pods ait été construit avec XCode 6.3 alors que vous utilisez toujours une version précédente.

Dans mon cas, j'ai dû mettre à jour mon OSX de mavericks à Yosemite pour avoir Xcode 6.3 et résoudre le problème




J'étais sur la graine GM de Xcode 5.0 et je ne pouvais obtenir aucune de ces réponses pour fonctionner. J'ai essayé chaque réponse unique sur SO sur plusieurs questions différentes au sujet des importations d'en-tête w / cocoapods.

Finalement, j'ai trouvé une solution qui a fonctionné pour moi : J'ai mis à niveau vers Xcode 5.0 via le Mac AppStore (installé sur le dessus de la graine GM) et maintenant les importations d'en-tête fonctionnent comme prévu.

J'ai également eu une version bêta de Xcode 5 sur mon système et j'ai supprimé cela aussi. Peut-être que c'était une combinaison des deux choses, mais j'espère que cela aide quelqu'un d'autre.




Ce qui fonctionnait pour moi était de sélectionner le projet Pods, de trouver et de sélectionner le framework cible avec l'en-tête manquant dans le répertoire cible du projet Pod et de paramétrer "Build Active Architecture Only" sur "No" sous "Architectures" dans les paramètres de construction de la cible.




Avez-vous essayé d'importer le style Cocoapods?

#import <ASLogger.h>

L'information sur le site n'est pas vraiment claire, j'ai soumis une demande de tirage:

https://github.com/CocoaPods/cocoapods.org/pull/34

Mise à jour: Ils ont tiré ma demande :)




pour moi, le problème était dans la valeur des autres indicateurs Linker. Pour une raison quelconque, je n'avais pas de guillemets dans les drapeaux comme -l"xml2" -l"Pods-MBProgressHUD" .




J'ai le même problème, mais les solutions ci-dessus ne peuvent pas fonctionner. Je l'ai réparé en faisant ceci:

  1. Supprimer le projet entier
  2. Exécutez git cloner le projet et exécutez l'installation du pod exec bundle
  3. cd le peoject et exécuter à distance ajouter en amont votre-remote-rep-ajouter
  4. git chercher en amont
  5. git checkout master
  6. Git fusionner en amont / maître

Et puis ça marche.




Une solution de contournement simple est: 1. Supprimer le dossier Pods et le fichier Podfile.lock. Mais ne supprimez pas Podfile 2. Exécutez la commande suivante dans le dossier racine de votre projet:

pod install



Voici une autre raison: Tous les chemins d'en-tête semblaient bien, mais nous avions encore une erreur dans le fichier précompilé (.pch) essayant de lire un en-tête de pod

(c'est-à-dire #import <CocoaLumberjack / CocoaLumberjack.h>).

En regardant la sortie brute, j'ai finalement remarqué que l'erreur brisait notre cible d'extension Watch OS, pas la cible principale que nous construisions, car nous importions aussi le fichier d'en-tête précompilé .pch dans les cibles du système d'exploitation Watch, et il échouait Là. Assurez-vous que les paramètres de votre cible Watch OS n'essaient pas d'importer le fichier .pch (en particulier si vous avez défini cette importation à partir du paramètre de la cible principale, comme je l'ai fait!)




Fichiers d'en-tête, vous serez la mort de moi ...

Finalement, le faire fonctionner en ajoutant (y compris des citations)

"${PODS_ROOT}/BuildHeaders"

à l'entrée Chemins de recherche d'en-tête utilisateur et en cochant 'récursive'.




J'ai résolu ce problème pour Xcode 8.2.1 par glisser-déposer que je veux utiliser.




C'était la réponse pour moi, j'ai mis à jour les cocoapodes et je pense que ça a fait disparaître les PODS_HEADERS_SEARCH_PATHS. Ma solution était similaire à cela mais j'ai utilisé "$ (PODS_ROOT) / Headers" - Andrew Aitken

Merci beaucoup pour cette réponse. J'ai eu du mal à trouver des moyens de résoudre mon problème. Merci beaucoup.




Je vais mettre à jour les choses ci-dessous dans mes paramètres de construction et je n'ai pas eu d'erreurs. Pour vérifier ce sont les choses tout en mettant à jour vos cocoapodes.

Paramètres de construction

Activer le code de bit - OUI (si vous utilisez un bitcode)

Préprocesseur de macros - $ (hérité)

Autre indicateur de lien - objc, -lc ++, $ (inherited)

Construire l'architecture seulement

Déboguer - Oui

Relese - Non

Chemin de recherche

Framework search path - $ (hérité) $ (PROJECT_DIR)

Chemin de recherche de la bibliothèque - $ (hérité)

Chemin de recherche d'en-tête - $ (hérité)




1.Vérifier

paramètres de construction -> chemin de recherche -> chemins de recherche d'en-tête utilisateur ->

  • "$ {PODS_ROOT} /" récursif

2.Vérifiez le style d'importation (POINT CLÉ), si votre podfile a défini

use_frameworks!

Dans votre File-Bridging-Header.h , le formateur devrait aimer ceci

#import "MBProgressHUD.h"

d'autre devrait être ci-dessous

#import <MBProgressHUD.h>

3.Ce doit être du travail! croyez-moi




Mettre à jour

Assurez-vous que votre Podfile inclut link_with sur les cibles manquant un fichier de configuration. Cocoapods ne définit que la première cible par défaut . par exemple

platform :osx, '10.7'
pod 'JSONKit',       '~> 1.4'

link_with 'Pomo', 'Pomo Dev', 'Pomo Tests'

------ Mettre à jour la fin

Note: Veuillez noter que vous devez regarder dans Project-> Info-> Configurations pour les étapes ci-dessous.

J'ai eu des symptômes similaires et trouvé que le fichier pods.xcconfig n'était pas inclus dans la target spécifique que j'essayais de construire. Certaines des autres solutions proposées ont fonctionné pour moi, mais celle-ci semblait aborder une partie de la question sous-jacente.

La solution simple consistait à modifier le fichier de configuration pour les cibles qui n'avaient pas un ensemble.




Aucune des réponses n'a fonctionné pour moi.
J'ai finalement soumis mon application en installant Xcode 5.0.2 ancien avec Xcode 5.1
Utilisé cette version de Xcode pour archiver l'application sans erreurs.

Téléchargez l'ancienne version de Xcode 5.0.2 here (vous devez être connecté avec votre identifiant Apple):





objective-c ios cocoa build cocoapods