SocketRocketを使用して依存関係(CocoaPods経由でインストール)を持つプロジェクトがあり、HeapAnalyticsから静的ライブラリをインポートしました。どうやら、HeapAnalyticsライブラリは既にSocketRocketを使用しています。コンパイル時にエラーは発生しませんが、実行時に次を受け取ります。
Class SRWebSocket is implemented in both [path] and [path].
One of the two will be used. Which one is undefined.
私が見たほとんどのソリューションは静的ライブラリを自分でコンパイルする必要があり、クラス名などを変更する必要があり、ソースにアクセスできないため、どのように処理するのかわかりません。
推奨事項はありますか?
そのエラーメッセージを書きました!•
クラス名を変更するか、前述のライブラリにリンクしないでください。
プロジェクトはどのように構成されていますか? SRに明示的にリンクする場所はどこにありますか?それとも、すでにSRが含まれている2つの静的ライブラリに対するリンクの製品ですか?
前者の場合は、SRへの直接リンクを停止し、既に使用しているライブラリに付属しているバージョンを継承します(警告:適切なバージョンであることを確認してください)。
後者の場合、ライブラリの1つを変更する必要があります。
•実際、エラーを修正しました。以前は、どちらか一方が使用されることを暗示していました。しかし、それは実際に起こっていたことではなく、動作はプラットフォームごとに異なっていました。したがって、動作が定義されていないことを特定する際により正確になるように変更されました。
このエラーは、同じシンボル/クラスが2回定義されていることを示しています。
同じ問題に2度直面しました。フレームワークが重複し、シミュレータをリセットするのに役立ちました。
この警告が1か月以上続いた後、ようやくこれを試したところ、うまくいきました。