2016-05-22 17 views
24

Ho appena provato ad aggiornare da cocoapods 0.39.x a Cocoapods 1.0. EsecuzioneCocoapods 1.0: file di intestazione non trovati

pod installare

dal terminale provoca nessun avviso. Tutto sembra normale. Tuttavia, quando provo a costruire il mio progetto emette:

AFNetworking/AFNetworking.h file non trovato

Il mio file pod si presenta così (ci sono alcuni più dipendenze, ma ho elencato solo parte di esso):

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 

Poiché alcuni progetti sono scritte in Objective-C, i creato un'intestazione bridging:

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

Ho incluso esplicitamente $(inherited) nello Header Search Paths, nello User Header Search paths e nello Framework Search paths ma l'errore non scompare. Qualcuno ha un'idea su come risolvere questo problema?

+1

Alcuni suggerimenti per iniziare ... non correlati alla tua domanda, ma se stai codificando in Swift prova a utilizzare Alamofire anziché AFNetworking. Entrambi hanno lo stesso creatore, ma Alamofire è fondamentalmente la versione Swift di AFNetworking. Rende le cose un po 'più facili. In secondo luogo, assicurati di aprire il tuo progetto come xcworkspace invece di xcodeproj. Cocoapod funzionerà solo in xcworkspace. Se questo non è il problema, posso provare ad aiutare ulteriormente. – user3353890

+0

Grazie per i tuoi suggerimenti. Sì, sono totalmente d'accordo. Ma devo usare AFNetworking perché un'altra dipendenza è scritta nell'obiettivo C e utilizza AFNetworking e non Alamofire. Ho già lavorato in xcworkspace, infatti era un problema di use_frameworks. – slashburn

+1

Gotcha. Hai provato a eseguire la tua app? Ho avuto il problema prima dove ho trovato l'errore "file non trovato", ma pulisco la build ed eseguo l'app e chiarisco tutti i problemi. È quasi come se l'errore fosse un errore. – user3353890

risposta

30

Il messaggio di errore è abbastanza fuorviante. All'inizio pensavo di avere qualche problema con i miei percorsi di ricerca dell'intestazione, quindi ho praticamente provato tutto quello che ho trovato su StackOverflow.

Se si utilizza use_frameworks! nel Podfile, non è necessario includere tutti i pod Objective-C nell'intestazione del bridging. Devi farlo solo se il pod è distribuito come libreria statica, non come framework.

ho fatto la seguente

  1. Press Cmd + option + shift + k per pulire la cartella creata
  2. Run pod install
  3. Eliminare le righe nell'intestazione ponte dove si dice che i file header non vengono trovati e utilizzare una semplice istruzione di importazione ogni volta che si desidera utilizzare quel modulo in un file Swift specifico, ad es import AFNetworking
+0

Cosa succede se non sto utilizzando 'use_frameworks'? Il mio errore non sta andando via, né li trova come modulo. Ho provato a deintegrare e pulire. È lo stesso codice base che ho creato e inviato all'appstore. Eventuali suggerimenti ? – Alix

+1

La tua app è in Swift o Objective-C? Questo: https://guides.codepath.com/ios/CocoaPods potrebbe essere utile per te. Se la tua app è in Swift, andrei sempre con use_frameworks. use_frameworks ti consente di aggiungere pod Swift. Sfortunatamente non tutti i pod Objective-C possono essere distribuiti come framework. Se ti imbatti in problemi, probabilmente devi importare le intestazioni del pod in un'intestazione di bridging (solo se il pod Objective-C NON è distribuito come framework). Se il sistema non trova le intestazioni, devi iniziare a modificare i percorsi di ricerca dell'intestazione (hai provato le opzioni 'ricorsive')? – slashburn

+1

quando uso importazione AFNetworking appare un errore: No tale modello AFNetworking –

2

Ho provato a rimuovere ~/Library/Developer/Xcode/DerivedData/* e ricostruire il progetto, e ha funzionato per me.