Reasons to add both SDKs in the same iOS app
In some cases, you might want to have both the Driver SDK and the Consumer SDK in the same iOS app. For example:
- You want one app to address both driver and passenger functionalities.
- Your app needs both an expeditor/dispatcher view, so your drivers can use it, but other team members can track the details of a single vehicle.
Prerequisites to build both SDKs in the same application
Both SDKs must be configured in the project setup. For different ways of framework installation, you can follow the Driver SDK guide with some minor tweaks:
For Cocoapods installation, see Getting Started with the Driver SDK for iOS Project Configuration Cocoapods.
In the Podfile, add the Consumer SDK dependency. The Podfile should look like this
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
For manual installation, see Getting Started with the Driver SDK for iOS Project Configuration Manual Installation.
After following the Driver SDK installation guide, follow steps 5 and 6 in the Getting started with the Consumer SDK for iOS Project Configuration Manual Installation to configure the Consumer SDK.
Versioning
Both the Driver SDK and the Consumer SDK need to have versions 3.3.0 or later to support this feature.
Theoretical breaking changes of the SDKs
The Driver and Consumer SDKs v3.3.0 introduces the following changes which could theoretically cause issues for some Driver SDK apps, although this is unlikely. In general, if your Driver SDK app used classes meant for the Consumer SDK, you will need to declare the Consumer SDK as a dependency to avoid issues. Follow is the list of changes:
Driver SDK
Removed unused classes:
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
Renamed the class in Preview which is only used by the trusted driver mode in Last Mile Fleet Solution. For trusted mode, see Trusted driver model (Preview).
GMTSTaskInfo.h
->GMTDTaskInfo.h
Consumer SDK
Renamed GMTSImmutableData
to GMTCImmutableData
class. GMTSImmutableData
was only used as a base class and never used directly.
GMTSImmutableData.h
->GMTCImmutableData.h
Renamed a typedef which should be backward compatible:
GMTSFleetEngineIDString.h
->GMTCFleetEngineIDString.h