Dans Xcode 10.2, je ne peux plus exécuter mon application sur un simulateur avec le nettoyeur de thread activé. J'obtiens l'erreur
Cette application n'a pas pu être installée pour le moment.
L'application WatchKit v3 a interdit la clé Info.plist: NSBuiltWithThreadSanitizer
Mon application comprend une application de surveillance et de nombreux frameworks (certains pour la montre, d'autres pour iOS), mais j'obtiens cette erreur lorsque j'essaye d'exécuter mon application principale sur un simulateur. J'ai vérifié mes fichiers plist et confirmé que ce n'est pas une clé que j'ai spécifiée nulle part.
Quand je vérifie les fichiers plist dans DerivedData, je vois qu'en effet tous les plists de mes frameworks Watch OS ont cette clé. Mais le seul moyen que je peux trouver pour supprimer l'indicateur est de désactiver complètement l'assainisseur de threads. Comment le désactiver uniquement pour la montre et non pour mon application principale?
3 Réponses :
Voici une solution de contournement: cliquez sur "Modifier le schéma ..." (en haut de Xcode; cliquez sur l'icône de votre application), puis ouvrez l'onglet "Diagnostics" et désactivez "Thread Sanitizer".
Ce n'est pas une solution, c'est une solution de contournement. Je veux que le désinfectant de fil soit activé. Si je ne peux pas l'avoir pour une application de montre, c'est très bien. Mais je veux toujours que mon application principale l'ait.
Moi aussi. Si vous avez une solution, partagez-la ici.
Dans la version bêta de Xcode 11 fonctionnant sous Mac OS Catalina, ce problème semble avoir disparu. Cela indique qu'il s'agit d'un bogue du côté d'Apple, alors j'espère que nous verrons une mise à jour Xcode 10 avec un correctif.
En fonction de votre cas d'utilisation, une autre solution de contournement consiste à supprimer temporairement la cible de surveillance de votre application principale: Empêcher le déploiement (désactiver) l'application WatchKit avec l'application iPhone iOS dans Xcode (supprimer des paramètres du fichier de projet, Phase de construction -> Dépendances cibles et Phase de construction - > Intégrer le contenu de la montre)
Vous pouvez restaurer rapidement ceci avec le contrôle de version après votre session de débogage.
Je rencontre le même problème. Avez-vous trouvé une solution?
@ duncanc4 Pas encore 🙁
J'ai soumis un rapport de bogue à Apple, radar: // 50206337
Pareil ici, la version Xcode est 10.2.1 ... Impossible de trouver cette clé nulle part sur le fichier info.plist indiqué. Entrer dans "Modifier le schéma" pour mes cibles de surveillance affiche une case à cocher "désactivée" pour ThreadSanitizing, donc je ne peux rien faire.
@Isaac, vous devez désactiver l'assainisseur de thread pour votre cible d'application, pas pour les cibles de la montre. Cela n'a aucun sens, mais c'est ce qui fonctionne pour moi ...
Le fait est que j'ai désactivé ce paramètre pour tout le programme bêta 10.2, car c'était un crash de BUILD TIME ... Chaque fois que 10.2.1 a été publié, son journal des modifications a apparemment dit que "NSThreadSanitizer" fonctionnait enfin à nouveau. Nous l'avons donc réactivé ... La phase de construction ne plante plus, mais la phase de déploiement montre cette nouvelle erreur ...
@ duncanc4 est-ce que le radar est toujours ouvert? Je ne peux pas le trouver
@ShadowOf Mine est toujours ouverte, mais ils ont commenté en disant qu'il s'agissait d'un duplicata d'un autre.