Driver SDK と Consumer SDK を同じ iOS アプリに統合する

同じ iOS アプリに両方の SDK を追加する理由

場合によっては、Driver SDK と Consumer SDK の両方を同じ iOS アプリに含めることができます。次に例を示します。

  1. 1 つのアプリで運転手と助手席の両方の機能に対応するとします。
  2. アプリには expeditor ビューと ディスパッチャー ビューの両方が必要なため、ドライバーはビューを使用できますが、他のチームメンバーは 1 台の車両の詳細を追跡できます。

同じアプリケーションで両方の SDK をビルドするための前提条件

両方の SDK をプロジェクト設定で構成する必要があります。Driver SDK ガイドに沿って、いくつかの微調整を行うことで、フレームワークをインストールするさまざまな方法を確認できます。

  1. Cocoapods のインストールについては、Driver SDK for iOS プロジェクト構成のスタートガイドをご覧ください。

    Podfile で Consumer SDK の依存関係を追加します。Podfile は次のようになります。

    source "https://cpdc-eap.googlesource.com/ridesharing-consumer-sdk.git"
    source "https://cpdc-eap.googlesource.com/ridesharing-driver-sdk.git"
    source "https://github.com/CocoaPods/Specs.git"
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
        pod 'GoogleRidesharingConsumer'
        pod 'GoogleRidesharingDriver'
    end
    
  2. 手動インストールについては、Driver SDK for iOS プロジェクト構成の手動インストールのスタートガイドをご覧ください。

    Driver SDK のインストール ガイドに従った後、Consumer SDK for iOS プロジェクト構成の手動インストール スタートガイドのステップ 5 と 6 に沿って Consumer SDK を構成します。

バージョニング

この機能をサポートするには、Driver SDK と Consumer SDK の両方にバージョン 3.3.0 以降が必要です。

SDK の理論上の互換性を破る変更

Driver SDK v3.3.0 と Consumer SDK v3.3.0 で導入された次の変更により、理論的には一部の Driver SDK アプリで問題が発生する可能性がありますが、その可能性は低いです。一般に、Driver SDK アプリが Consumer SDK 用のクラスを使用している場合、問題を回避するために Consumer SDK を依存関係として宣言する必要があります。変更点は次のとおりです。

Driver SDK

使用されていないクラスを削除しました。

  • GMTSLatLng.h
  • GMTSRequest.h
  • GMTSRequestHeader.h
  • GMTSRequestOptions.h
  • GMTSRequestOptionsSupport.h
  • GMTSSpeedReadingSpan.h
  • GMTSTerminalLocation.h
  • GMTSTimestamp.h
  • GMTSTrafficData.h
  • GMTSTrip.h
  • GMTSTripPropertyField.h
  • GMTSTripWaypoint.h
  • GMTSVehicle.h
  • GMTSVehicleLocation.h
  • GMTSVehicleMatch.h
  • GMTSVehicleSupportedTripType.h
  • GMTSVehicleType.h
  • GMTSWaypoint.h

プレビューで、ラスト ワンマイルのフリート ソリューションの信頼できるドライバー モードでのみ使用されるクラスの名前を変更しました。トラステッド モードについては、信頼できるドライバモデル(プレビュー)をご覧ください。

  • GMTSTaskInfo.h -> GMTDTaskInfo.h

コンシューマ SDK

GMTSImmutableData の名前を GMTCImmutableData クラスに変更しました。GMTSImmutableData は基本クラスとしてのみ使用され、直接使用されることはありませんでした。

  • GMTSImmutableData.h -> GMTCImmutableData.h

下位互換性を持たせるべき typedef の名前を変更しました。

  • GMTSFleetEngineIDString.h -> GMTCFleetEngineIDString.h