46 votes

100+ avertissements «Classe implémentée dans MapKit et VectorKit» avec Xcode 9.0.1 et versions ultérieures

Lors de l'exécution de mon projet (qui n'a même pas utiliser MapKit), ma console reçoit des envois en nombre de plus d'une centaine de classe en double avertissements:

objc[6377]: Classe de ___MKPlaceBusinessInfoItemAccessibility_super est mis en œuvre dans les deux /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit (0x12f128f00) et /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/VectorKit.axbundle/VectorKit (0x12f2187b0). L'un des deux va être utilisé. Ce qui est indéfini.

Ces mises en garde étaient pas présents avec Xcode 9.0.0, je ne suis que rencontre ce sur Xcode 9.0.1 et au-dessus.

Je suis conscient que c'est un bug et j'ai trouvé un radar, c'est-à propos de ce problème. Est-il un moyen de faire taire ces mises en garde, sans affecter la visibilité des autres SDK mises en garde?

28voto

ChrisCM Points 3471

C'est effectivement un bug dans l'actuel iOS Cadre et n'a rien à voir avec quoi que ce soit dans votre application, le module de cache, les bibliothèques, etc. La raison de ce qui semble être non déterministe, c'est qu'il n'est là que lorsque l'Accessibilité est une Couche active, ce qui n'est pas sur le simulateur, sauf dans des circonstances très précises. Les trois, je suis conscient de:

  • L'Inspecteur Accessibilité est sur
  • L'INTERFACE utilisateur d'Instrumentation de Test
  • VoiceOver pour OSX est Sur (autres ATs ainsi)

Pour obtenir ce à aller plus loin, vous devriez:

  • La sortie de l'Accessibilité de l'Inspecteur (si c'est sur)
  • Open Simulator
  • Matériel -> "Effacer Contenu et Réglages"
  • Re: lancer l'application.
  • Littéralement JAMAIS exécuter ce simulateur avec l'Inspecteur Accessibilité
  • Littéralement JAMAIS exécuter l'INTERFACE utilisateur des tests sur ce simulateur, qui s'appuient également sur l'Accessibilité de la Couche pour faire leur travail, même si je ne pense pas que cela sera la cause de l'erreur de rester jusqu'à ce que vous "Effacer toutes les...." encore une fois, il va juste être présent pour cette série de tests.

Chaque fois que vous effectuez l'une de ces deux derniers points, vous devrez effacer les données à nouveau...

Le problème de fond est que MapKit et VectorKit à la fois lien avec l'accessibilité des faisceaux, mais apparemment n'ont pas fait de manière dynamique, de sorte que ces bottes sont inclus dans les deux modules. Ces avertissements sont très ignoré en toute sécurité, bien que très détaillé et frustrant.

Malheureusement, il n'existe pas d'autre pour résoudre ce problème... peut-être que vous pourriez télécharger une ancienne version du simulateur si vous n'avez pas besoin iOS 11 caractéristiques. Ou tout simplement ne pas exécuter des essais instrumentés/Inspecteur Accessibilité/VoiceOver/j'ESPÈRE qu'ILS vont CORRIGER CELA RAPIDEMENT!

10voto

Ilya Krigouzov Points 192

Vous avez le même problème sur 9.0.1.

  • Vous devriez quitter Xcode et tous les simulateurs.
  • Exécutez rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache .
  • Redémarrez Xcode.

Ce problème a été résolu pour moi.

4voto

Nuthatch Points 1553

Je me fous de l'accessibilité dans le simulateur, j'ai donc renommé l'un des fichiers en double pour qu'il ne soit pas trouvé:

 mv /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit_
 

lol

2voto

Denis Kilin Points 31

Réinitialiser le simulateur iOS corrige cela pour moi. Simulateur -> Matériel -> Effacer tout le contenu et les paramètres ...

1voto

ke jin Points 11

Exactement le même problème, dans mon cas, j'ai essayé de supprimer tous les fichiers dans DerivedData dossier, mais toujours pas de travail.

Et plus tard, j'ai constaté que si je passe à un autre type de simulateur, par exemple, passer de 'iPhone 8' à 'iPhone 8 de plus, l'avertissement disparaît.

Donc, il suffit de supprimer le "iPhone 8' simulateur de simulateur de liste, puis ajouter l'iPhone 8' simulateur de nouveau, il fonctionne.

Vous ne savez pas si le problème viendra de nouveau, puisque c'est également la troisième partie de mon temps à traiter avec cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X