web-dev-qa-db-fra.com

Cocoapods 1.0: fichiers d'en-tête introuvables

Je viens d'essayer de mettre à jour de cocoapods 0.39.x vers Cocoapods 1.0. Fonctionnement

installation de pod

du terminal ne provoque aucun avertissement. Tout semble normal. Cependant, lorsque j'essaie de construire mon projet, il génère:

Fichier AFNetworking/AFNetworking.h introuvable

Mon fichier pod ressemble à ceci (il y a quelques autres dépendances mais je n'en ai répertorié qu'une partie):

platform :ios, '8.0'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'

target 'MyApp' do
    pod 'AFNetworking', '~> 2.6'
    pod 'BEMCheckBox'
    pod 'ActionSheetPicker-3.0', '~> 2.0.5'
    pod 'SCLAlertView'
    pod 'DZNEmptyDataSet'
    pod 'SSZipArchive'
end


target 'MyAppTests' do

end

Puisque certains projets sont écrits en Objective-C, j'ai créé un en-tête de pontage:

#import <AFNetworking/AFNetworking.h>
#import <ActionSheetPicker_3_0/ActionSheetPicker.h>
#import <SSZipArchive/SSZipArchive.h>
#import <DZNEmptyDataSet/UIScrollView+EmptyDataSet.h>

J'ai explicitement inclus $(inherited) dans le Header Search Paths, Le User Header Search paths Et le Framework Search paths Mais l'erreur ne disparaît pas. Quelqu'un at-il une idée sur la façon de résoudre ce problème?

29
productioncoder

Le message d'erreur est assez trompeur. Au début, je pensais que j'avais des problèmes avec mes chemins de recherche d'en-tête, donc j'ai essentiellement essayé tout ce que j'ai trouvé sur stackoverflow.

Si tu utilises use_frameworks! dans votre Podfile, vous n'avez pas besoin d'inclure tous les pods Objective-C dans votre en-tête de pontage. Vous ne devez le faire que si le pod est distribué comme une bibliothèque statique, pas comme un framework.

J'ai fait ce qui suit

  1. Appuyez sur Cmd + option + shift + k pour nettoyer votre dossier de construction
  2. Courir pod install
  3. Supprimez les lignes de votre en-tête de pontage où il vous indique que les fichiers d'en-tête ne sont pas trouvés et utilisez une simple instruction d'importation chaque fois que vous souhaitez utiliser ce module dans un fichier spécifique Swift, par exemple import AFNetworking
34
productioncoder

J'ai essayé de supprimer ~/Library/Developer/Xcode/DerivedData/* et de reconstruire le projet, et cela a fonctionné pour moi.

4
always_beta