Подтвердить что ты не робот

Класс реализован в обоих. Один из двух будет использован

У меня есть проект, который имеет зависимость (установленную через CocoaPods) с помощью SocketRocket и импортировал статическую библиотеку из HeapAnalytics. По-видимому, библиотека HeapAnalytics уже использует SocketRocket. При компиляции я не получаю ошибок, но во время выполнения получаю следующее:

Class SRWebSocket is implemented in both [path] and [path].
One of the two will be used. Which one is undefined.

Я не уверен, как справиться с этим, потому что большинство решений, которые я видел, требуют компиляции статической библиотеки, сами меняете имена классов и т.д., и у меня нет доступа к источнику.

Любые рекомендации?

4b9b3361

Ответ 1

Я написал это сообщение об ошибке!

Либо измените имя класса, либо не связывайтесь с указанной библиотекой.

Как настроен ваш проект? Есть ли где-нибудь, где вы явно ссылаетесь на SR? Или это продукт, связанный с двумя статическими библиотеками, которые уже включают SR?

Если первый, то прекратите привязку к SR напрямую и просто наследуйте версию, которая поставляется с уже используемой библиотекой (предупреждение: убедитесь, что она имеет правильную версию).

Если последнее, тогда вам придется изменить одну из библиотек.

• Собственно, я изменил ошибку. Это подразумевало, что тот или другой будет использоваться. Но это было не совсем то, что происходило, и поведение было различным на разных платформах. Таким образом, он был изменен так, что было гораздо точнее определить, что поведение было undefined.