2015-06-19 8 views
42

ho aggiornato il mio progetto per Swift 2 in Xcode 7 beta (7A120f) e ottenere questo errore quando si cerca di po sé al prompt lldb:Swift aveva errori fatali che costruiscono il contesto AST per questo modulo

avviso: Errore rapido nel modulo myApp:

Swift ha avuto errori fatali nella costruzione del contesto per questo modulo: impossibile caricare il modulo sottostante per 'UIKit' Le informazioni di debug da questo modulo non saranno disponibili nel debugger.

Sono quindi rimasto con un debugger danneggiato (nessun valore). Questo succede indipendentemente da dove metto un punto di interruzione. Ho provato:

  • compensazione derivante dati
  • prodotto> Clean
  • riavvio Xcode
  • riavviare mac

sono in grado di creare un nuovo progetto e vedere l'output di debug in questo probabilmente ha qualcosa a che fare con il modo in cui il mio progetto è stato migrato da xcode.

Qual è il contesto e come posso correggerlo?

Modifica: ast è 'Abstract Syntax Tree'. Ancora nessuna idea di come risolvere il problema però.

+2

Attualmente si sta tentando di risolvere lo stesso problema o simile in cui il debugger è danneggiato durante l'importazione di un framework personalizzato. http://stackoverflow.com/questions/31219422/swift-debugger-does-not-show-variable-values-when-importing-objc-framework – LearnCocos2D

+7

Lo stesso problema con 'Crashlytics' –

+0

Puoi pubblicare un progetto di esempio con questo problema o forse mettere la parte critica in un parco giochi? –

risposta

1

Per risolvere questo problema ho migrato manualmente tutti i miei file e le impostazioni per un nuovo progetto Xcode. Nient'altro ha funzionato. Probabilmente c'è una soluzione migliore ma non potrei passare più tempo a cercarla.

+0

Questa è l'unica soluzione per me, grazie! –

5

Ho lo stesso problema nel mio progetto. L'errore che lldb sputa quando tenta di po un oggetto evidenzia il problema:

(lldb)po fileURL 
warning: Swift error in module <APP_NAME>: 
    Swift had fatal errors constructing the ast context for this module: <module-includes>:1:9: note: in file included from <module-includes>:1: 
#import "Headers/Crashlytics.h" 
     ^
<APP_PATH>/Pods/Crashlytics/Crashlytics.framework/Headers/Crashlytics.h:10:9: error: include of non-modular header inside framework module 'Crashlytics' 
#import <Fabric/FABAttributes.h> 
     ^

L'intestazione Crashlytics.h ombrello in Crashlytics.framework sta importando Fabric/FABAttributes.h, che non fa parte del modulo Crashlytics (cioè non nella sua module.modulemap). Questo è Crashlytics 3.1.0 installato usando CocoaPods.

Perché Xcode 7 lo tratta come un errore fatale è oltre me (era solo un avviso in 6). In Xcode 6 è possibile aggirare questo tipo di "inclusione non modulare" attivando l'impostazione di generazione "Consenti moduli non modulari in Framework" (CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES) nella destinazione dell'applicazione.

Non ho avuto fortuna ad ottenere le xx 7 beta per onorare la bandiera sopra (rdar://22044453 < - per favore dup).

L'unica soluzione che ho trovato per far funzionare il debugger è rimuovere il pod dei Crashlytics. Esprimo il commento sui contenitori Crashlytics e Fabric, eseguo pod install, riprendo il debug e quindi reinstallo i pod prima di un rilascio.

Spero davvero che questo problema venga risolto in Xcode 7 quando uscirà dalla versione beta.

+0

sfortunatamente per tutti, sembra che non sia stato risolto. – Lifely

+0

Nel mio caso, Crashlytics ha risolto questo problema modificando #import <> in @import Fabric. – phatblat

+0

ho anche trovato una soluzione, la dipendenza Fabric che stavo usando era deprecata, aggiornando ha risolto il problema. – Lifely

2

Controlla l'intestazione di bridging e se avete

@import Crashlytics;

(o di qualsiasi altro framework che causare l'errore.Nel mio caso è stato GoogleMobileAds)

provare a sostituire con

#import <Crashlytics/Crashlytics.h>

1

Ho avuto lo stesso problema. Nella maggior parte dei casi questo problema appare quando si usano framework o librerie Object-C nel progetto Swift.

Il problema è stato risolto importando framework o librerie ogg-c solo in Bridging-Header.

#import <SampleFramework/SampleFramework.h> 

e rimuovere tutte le importazioni di questo quadro da file Swift

import SampleFramework // <-- Remove it 

poi pulire e costruire.

Assicurarsi di aver eseguito questa procedura per tutti i framework o le librerie di obiettivi-c nei progetti.

Spero che questo aiuti!

Problemi correlati