tutorial the programming lenguaje language examples apple xcode swift

xcode - the - swift tutorial



Swift tuvo errores fatales al construir el contexto ast para este módulo (4)

Estoy teniendo el mismo problema en mi proyecto. El error que emite lldb al intentar señalar un objeto resalta el 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> ^

El Crashlytics.h sombrilla de Crashlytics.framework en Crashlytics.framework está importando Fabric/FABAttributes.h , que no forma parte del módulo Crashlytics (es decir, no está en su module.modulemap ). Esto es Crashlytics 3.1.0 instalado usando CocoaPods.

Por qué Xcode 7 trata esto como un error fatal me supera (fue solo una advertencia en 6). En Xcode 6, puede evitar este tipo de "inclusión de cabecera no modular" habilitando la configuración de compilación "Permitir que no se incluya modular en módulos de marco" ( CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES ) en su destino de aplicación.

No he tenido suerte de conseguir que las betas de Xcode 7 honren la bandera anterior ( rdar://22044453 <- por favor, dup).

La única solución que he encontrado para que el depurador funcione es eliminar el pod Crashlytics. Comento los pods de Crashlytics y Fabric, ejecuto la pod install , reanudo la depuración y luego reinstalo los pods antes de un lanzamiento.

Realmente espero que esto esté solucionado en Xcode 7 para cuando salga de la versión beta.

Actualicé mi proyecto a Swift 2 en Xcode 7 beta (7A120f) y obtengo este error cuando intento activarme en el indicador de lldb:

advertencia: Swift error en el módulo myApp:

Swift tuvo errores fatales al construir el contexto ast para este módulo: no se puede cargar el módulo subyacente para ''UIKit'' La información de depuración de este módulo no estará disponible en el depurador.

Luego me quedo con un depurador lisiado (sin valores). Esto sucede independientemente de donde coloco un punto de interrupción. He intentado:

  • borrar datos derivados
  • Producto> Limpiar
  • reiniciando xcode
  • reiniciando mac

Soy capaz de crear un nuevo proyecto y ver el resultado de la depuración en él, por lo que probablemente tenga algo que ver con la forma en que xcode migró mi proyecto.

¿Qué es el contexto ast y cómo puedo corregirlo?

Edit: ast es ''Abstract Syntax Tree''. Todavía no tengo idea de cómo arreglarlo.


Para solucionar este problema, migré manualmente todos mis archivos y configuraciones a un nuevo proyecto de xcode. Nada más funcionó. Probablemente haya una mejor solución, pero no podría pasar más tiempo buscándola.


Revise su cabecera puente y si tiene

@import Crashlytics;

(o cualquier otro marco que cause el error. En mi caso fue GoogleMobileAds )

tratar de reemplazar con

#import <Crashlytics/Crashlytics.h>


Tuve el mismo problema. En la mayoría de los casos, estos problemas aparecen cuando utiliza marcos o bibliotecas de object-c en el proyecto Swift.

El problema se solucionó importando marcos o bibliotecas de object-c solo en Bridging-Header.

#import <SampleFramework/SampleFramework.h>

y eliminar todas las importaciones de este marco de los archivos Swift

import SampleFramework // <-- Remove it

Luego limpiar y construir.

Asegúrese de realizar este procedimiento para todos los marcos o bibliotecas de Objective-C en sus proyectos.

¡Espero que esto ayude!