web-dev-qa-db-ja.com

Xcode 12: 'sessionDelegate'には異なるモジュールで異なる定義があります。

編集:この問題はXcode 12 Beta5の後に発生します。 Xcodeは、異なるモジュールが同じ名前(おそらくパブリッククラスやプロトコルの場合)を定義できません。 AlamofireおよびKingfisherは、SessionDelegateを同時に定義するように見えます。私はまだ解決策を見つけようとしています。

私はアプリケーションでiOS 14ウィジェットを実装しています。私はXcode 12 Beta 2とeverthingが編集しました。 Xcode to Xcode 12 Beta 6を更新すると、次のエラーに直面しました。

'sessionDelegate'には異なるモジュールで異なる定義があります。最初の違いはモジュール 'kingfisher.swift'の定義です。

ファイルのスクリーンショットもエラーで添付しています。

enter image description here

AlamoFireまたはKingfisherのSessionDelegateの名前が異なるようにヘッダーファイルを編集する方法はありますか?この問題を克服するための回避策はありますか?

これまでに試したことは次のとおりです。

  • AlamofireとKingfisherの両方を最新バージョンに更新しました
  • 私はpodfile.lockとすべてのポッドとすべてのポッドと派生データ
  • レガシービルドシステムでコンパイルしようとしました。
20
Feridun Erbaş

あなたが一時的な解決策が必要な場合は、ここにCocoApodsユーザーのためのものです。

  1. Kingfisherライブラリをプロジェクトで同じフォルダレベルにクローンします。あなたはそれをから得ることができます github

  2. Open kingfisher.xcworkspaceソース/ Netowfingの下のsessionDelegate.swiftファイルをKingFisherSessionDelegateに変更し、それに応じてクラス名を変更します。

  3. SessionDelegateの使用状況をKingFisherSessionDelegateに変更するKingfisherバージョン5.15.0の時点でのソース/ネットワーク/ IMageDownLoader.swift

  4. ローカルパスをPodfile

    pod 'Kingfisher'、:Path => '.. /kisher'

1
Feridun Erbaş

エラーは、同じ名前の複数のクラスが多数SessionDelegateさまざまなモジュールで存在すると言っています。 このエラーはXcode 12と関連しています

今のところ、クイックソリューションは、モジュールをCocoApodsでインストールすることです(CARTHAGEを使用している場合)、必要に応じてSessionDelegateインタフェースの名前を変更します。

1