Ich habe ein Projekt mit einer Abhängigkeit (über CocoaPods installiert), das SocketRocket verwendet, und ich habe eine statische Bibliothek von HeapAnalytics importiert. Anscheinend verwendet die HeapAnalytics-Bibliothek bereits SocketRocket. Ich erhalte beim Kompilieren keine Fehler, erhalte aber zur Laufzeit folgende Meldungen:
Class SRWebSocket is implemented in both [path] and [path].
One of the two will be used. Which one is undefined.
Ich bin nicht sicher, wie ich damit umgehen soll, da die meisten Lösungen, die ich gesehen habe, erfordern, dass Sie die statische Bibliothek selbst kompilieren, Klassennamen und dergleichen ändern, und ich keinen Zugriff auf die Quelle habe.
Irgendwelche Empfehlungen?
Ich habe diese Fehlermeldung geschrieben! •
Ändern Sie entweder den Klassennamen oder stellen Sie keine Verknüpfung zu dieser Bibliothek her.
Wie ist Ihr Projekt konfiguriert? Gibt es irgendwo, wo Sie explizit gegen SR verlinken? Oder ist es ein Produkt der Verknüpfung zweier statischer Bibliotheken, die beide bereits SR enthalten?
Wenn dies der Fall ist, beenden Sie die direkte Verknüpfung mit SR und erben Sie einfach die Version, die mit der Bibliothek geliefert wurde, die sie bereits verwendet (Warnung: Stellen Sie sicher, dass sie die richtige Version hat).
In letzterem Fall müssen Sie eine der Bibliotheken ändern.
• Eigentlich habe ich den Fehler geändert. Früher bedeutete das, dass das eine oder andere benutzt wurde. Aber das war nicht wirklich so und das Verhalten war auf verschiedenen Plattformen unterschiedlich. Daher wurde es dahingehend geändert, dass es viel genauer identifizierte, dass das Verhalten undefiniert war.
Der Fehler deutet darauf hin, dass dasselbe Symbol/dieselbe Klasse zweimal definiert wurde.
Ich war zweimal mit demselben Problem konfrontiert, einmal waren es doppelte Frameworks und das andere Mal half das Zurücksetzen des Simulators.
Ich hatte diese Warnung seit mehr als einem Monat, dann habe ich es endlich versucht und es hat bei mir funktioniert: