impossible d’imprimer l’object (‘po’) dans xcode6 beta 6 projet osx swift: (Erreur dans auto-import: impossible d’obtenir le module ‘__ObjC’ du contexte AST)

Une tentative d’impression d’object (commande po ) dans le projet xcode 6 beta 6 OSX Swift génère ce message d’erreur:

 (lldb) po managedObject error: Error in auto-import: failed to get module '__ObjC' from AST context 

Dans ce cas, l’object en question est une instance de NSManagedObject .

Des conseils sur la manière d’aider à l’importation automatique pour obtenir le __ObjC module dans le contexte de l’arborescence de syntaxe abstraite LLVM?

A partir de Xcode 6.1, si vous tentez la commande po deux fois, cela fonctionnera lors de la deuxième tentative. La première commande po échouera toujours pour chaque nouvelle session de débogage, mais les appels suivants fonctionneront.

Avoir le même problème dans xcode 7.3.1:

 error: Error in auto-import: failed to get module 'Touch' from AST context: :1:9: note: in file included from :1: #import "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/tree.h" ^ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/tree.h:17:10: error: 'libxml/xmlversion.h' file not found #include  ^ could not build Objective-C module 'LibXML2' 

Mais vous pouvez utiliser fr v managedObject au lieu de po managedObject .

Je vous recommande de vérifier que vous avez le

-D DEBUG

drapeau défini sous «Autres indicateurs rapides» pour le schéma que vous utilisez pour déboguer. J’ai connu des problèmes similaires lorsque je l’ai accidentellement supprimé.

Un nettoyage de mon projet et la suppression de DerivedData fonctionné pour moi.

J’ai discuté d’un message d’erreur similaire avec un ingénieur Apple à la WWDC2017. Il semble que ce problème puisse avoir de nombreuses causes et je suis conscient que le mien est légèrement différent de celui décrit ci-dessus.

Mon équipe a passé des semaines à essayer de comprendre cela, et cela a fini par être un bogue sur le compilateur d’Apple, que nous n’aurions jamais pu découvrir par nous-mêmes. En outre, il a une solution de contournement TRÈS facile.

Donc, c’est juste moi qui publie le correctif ici, afin de maximiser la probabilité que quelqu’un d’autre effectue une recherche de ce message d’erreur confus, et trouve cette réponse.

Alors, la voici. Dans notre cas, nous avions un projet Objective-C utilisant un mélange de frameworks Swift et Objective-C. Ce correctif peut s’appliquer dans des contextes légèrement différents, essayez-le simplement.

Il y a un bogue avec la manière dont les indicateurs de compilation sont agrégés à partir des frameworks et du projet, et le projet “pure Objective-C” le “active”.

Solution: ajoutez un seul fichier Swift vide (“Whatever.swift” ou autre) dans votre projet Objective-C, le rendant non-pure-objective-c (nouveau-> fichier-> fichier Swift, ne le faites pas.) créer l’en-tête de pontage.Le fichier contiendra uniquement l’importation de Foundation).