すべてのプロダクト
Search
ドキュメントセンター

Mobile Platform as a Service:wire/okio の依存関係の競合を解決する

最終更新日:Jan 17, 2025

競合の説明

mPaaS は RPC ネットワーク接続に wire/okio を使用しており、okhttp も okio を参照する必要があるため、mPaaS を okhttp と一緒に使用すると、wire/okio の競合が発生する可能性があります。

解決策

10.1.68 ベースライン

mPaaS の wire/okio 依存関係を削除し、モバイル ゲートウェイ 機能を回帰テストして、正しく動作することを確認しました。操作手順は次のとおりです。

  1. mPaaS で使用されている wire/okio のバージョンを確認します。

    'com.squareup.okio:okio:1.7.0@jar'
    'com.squareup.wire:wire-lite-runtime:1.5.3.4@jar'
  2. mPaaS サードパーティ SDK の group:artifact 情報を取得します。

    'com.alipay.android.phone.thirdparty:wire-build'
  3. mPaaS ライブラリを削除します。

    • AAR 方式

      ネイティブ AAR 方式を使用して mPaaS にアクセスしている場合、gradle の依存関係の受け渡しは自動的に新しいバージョンを使用するため、積極的に削除する必要はありません。一般に、mPaaS で使用するために選択されたバージョンは非常に安定性と安全性が高いため、mPaaS が提供するバージョンを使用することをお勧めします。バージョンに矛盾がある場合は、リリース前に mPaaS 機能をテストして安定性を確保してください。

    • mPaaS Inside および Portal&Bundle

      mpaascomponents {
      excludeDependencies = ["com.alipay.android.phone.thirdparty:wire-build"]
      }
  4. wire または okio を追加し直します (パブリック ネットワークの wire/okio を使用します。ネイティブ AAR アクセス方式は関係ありません)。

    mPaaS は com.alipay.android.phone.thirdparty:wire-build ライブラリに wire と okio の両方の依存関係を書き込んでいるため、必要に応じて追加し直す必要があります。

    • okio の競合のみがあり、wire の競合がない場合は、wire を追加し直す必要があります。

      implementation 'com.squareup.wire:wire-lite-runtime:1.5.3.4@jar'
    • wire の競合のみがあり、okio の競合がない場合は、okio を追加し直す必要があります。

      'com.squareup.okio:okio:1.7.0@jar'

10.2.3 ベースライン

mPaaS のバージョン依存関係を完全に削除し、ビジネス自体が必要とするバージョンを使用します。 wire/okio の競合を解決するには、次の操作手順を実行します。

  1. mPaaS の wire を削除します。現在、mPaaS は今のところ wire に強く依存していません。

    • ネイティブ AAR プロジェクトでは、次の操作が必要です。

      configurations {
      	all*.exclude group: 'com.alipay.android.phone.thirdparty', module: 'wire-build' 
      }
    • mPaaS Inside & Component (Portal & Bundle) プロジェクトでは、次の操作を実行する必要があります。

      mpaascomponents {
              excludeDependencies = [
                      "com.alipay.android.phone.thirdparty:wire-build"
                  ]
      }
  2. すべてのビジネスパーティ rpc の pb クラスは com.squareup.wire.Message を継承しており、com.mpaas.thirdparty.squareup.wire.Message を継承するように変更する必要があります。

    次のコンポーネント機能を回帰テストする必要があります。