web-dev-qa-db-fra.com

erreur: expression IRGen impossible, pas d'erreur supplémentaire

Je ne peux pas imprimer les informations de débogage dans mes tests d'interface utilisateur. Configuration: Xcode 10 et Swift 4.2.

Lorsque j'essaie d'imprimer quelque chose dans la console, je ne peux voir qu'une erreur:

"error: Couldn't IRGen expression, no additional error" 

Je n'ai eu aucun problème dans les versions antérieures de Xcode (8,9, etc.), uniquement dans Xcode 10. Je ne peux rien imprimer, lorsque je mets un point d'arrêt et essaie d'imprimer par exemple l'application po XCUIApplication() ou quelque chose comme ça.

Dans la version antérieure de Xcode lorsque j'écris dans la console:

"po XCUIApplication.debugDescription()" J'ai vu la structure de mon application.

Nous avons constaté que le problème apparaît lorsqu'un cadre externe est ajouté à la cible de tests d'interface utilisateur. Nous avons créé un exemple de projet avec RxSwift.framework inclus qui peut être utilisé pour reproduire notre problème:

https://drive.google.com/file/d/1BlByFVNaOdDqT4ED9Jwyi1kJ99PTRQen/view?usp=sharing

Cordialement.

23
Paweł Zemsta

J'ai eu le même problème avec Carthage. Cependant, en regardant de plus près la console, j'ai remarqué que Carthage au lieu de construire RxSwift vient de télécharger des binaires pré-construits,

*** Downloading RxSwift.framework binary at "Zürich"

qui à son tour contribuent à l'erreur IRGen. Forcer Carthage à construire un framework au lieu de télécharger du binaire a donc fonctionné.

carthage update --platform iOS --no-use-binaries
21
MichaelV

Le format de débogage Swift est un vidage binaire des objets internes Swift), vous devez donc avoir compilé vos binaires avec le compilateur fourni avec le débogueur que vous utilisez ou les choses vont mal.

Je peux reprocher le comportement que vous voyiez en utilisant Xcode 10.0 et le projet que vous avez fourni. Mais ensuite, j'ai obtenu les sources RxSwift de github et les ai reconstruites avec le compilateur Xcode 10.0 et j'ai remplacé votre RxSwift.framework par celui que j'ai construit localement et relancez le test, et l'expression que vous aviez attachée au point d'arrêt fonctionnait correctement. Pouvez-vous voir si cela fonctionne aussi pour vous?

Le débogueur aurait dû donner un meilleur message d'erreur, si vous voulez déposer un bogue avec le rapporteur de bogue Swift ( http://bugs.Swift.org ) nous peut chercher à améliorer le message d'erreur.

4
Jim Ingham

J'ai eu le même problème avec Carthage - RxSwift.

Suppression de fichiers de

Carthage/Build /...

Carthage/Checkouts/

Et appeler mise à jour de carthage dans le terminal a résolu mon problème.

Mise à jour:

Nous avons remarqué que ce problème se produit uniquement lors de la mise à jour de la bibliothèque RxSwift vers la version 4.3 et supérieure. La définition de la version sur 4.2.x fonctionne normalement.

2
Arijan

Vérifiez si les cadres sont correctement connectés. Dans mon cas, le framework de remplacement sur POD a résolu ce problème.

0
Pet