J'ai un projet qui a une dépendance (installé via CocoaPods) utilisant SocketRocket et j'ai importé une bibliothèque statique de HeapAnalytics. Apparemment, la bibliothèque HeapAnalytics utilise déjà SocketRocket. Je ne reçois aucune erreur lors de la compilation, mais au moment de l'exécution, je reçois les éléments suivants:
Class SRWebSocket is implemented in both [path] and [path].
One of the two will be used. Which one is undefined.
Je ne sais pas comment le gérer car la plupart des solutions que j'ai vues nécessitent de compiler vous-même la bibliothèque statique et de changer les noms de classe, et je n'ai pas accès à la source.
Des recommandations?
J'ai écrit ce message d'erreur! •
Modifiez le nom de la classe ou ne liez pas à ladite bibliothèque.
Comment est configuré votre projet? Y a-t-il un endroit où vous établissez un lien explicite avec SR? Ou est-ce un produit de la liaison avec deux bibliothèques statiques qui incluent déjà toutes les deux SR?
S'il s'agit du premier, alors arrêtez de vous lier directement à SR et héritez simplement de la version fournie avec la bibliothèque qui l'utilise déjà (avertissement: assurez-vous qu'il a la bonne version).
Dans ce dernier cas, vous devrez modifier l'une des bibliothèques.
• En fait, j'ai modifié l'erreur. Cela impliquait que l'un ou l'autre serait utilisé. Mais ce n'était pas vraiment ce qui se passait et le comportement était différent sur différentes plateformes. Ainsi, il a été modifié de sorte qu'il était beaucoup plus précis d'identifier que le comportement n'était pas défini.
L'erreur suggère que le même symbole/classe est défini deux fois.
J'ai rencontré le même problème à deux reprises, une fois qu'il s'agissait de cadres en double et l'autre fois, la réinitialisation du simulateur a aidé.
J'ai eu cet avertissement pendant plus d'un mois, puis j'ai finalement essayé cela et cela a fonctionné pour moi: