The Google Maps Platform team regularly updates SDKs with new features, bug fixes, and
performance improvements. This page provides guidance on how to manage your dependencies
on mobile SDKs.

## Which version to link to?

- **For mission-critical apps**, link to the latest dot release of the major
  version that you are using (X.\*), and upgrade yearly to the new major version.

  As you release new versions of your application
  throughout the year, you may start using newer dot versions of the Driver SDK for iOS. This will
  not require updates in your application as new dot versions are backward compatible.

  **Benefits:**
  - If you discover issues in the Driver SDK for iOS, fixes will be provided in a backward-compatible way for 12 months after the initial release of the major version, per the [Mobile support
    policy](https://developers.google.com/maps/software-support#sdk-support). You will not need to urgently upgrade to an *incompatible* SDK version to benefit from fixes.
  - The latest improvements and features are easy to adopt when your app is already built on the latest version.
  - Annual incremental updates to the newest major version of the SDK might require less work to adapt, rewrite, and test your application than having to handle backward-incompatible changes introduced across multiple major version releases.
- **For non-critical apps**, link to any fixed version. When you receive a deprecation
  notice for that fixed version, you will have 12 months to make your updated app code available to
  your users.

  **Benefits:**
  - Less frequent maintenance work.
  - New versions of your app keep supporting users' devices running earlier mobile operating systems for longer (until you need to upgrade to a new SDK version).

Project owners with monitored email addresses receive proactive notifications about changes that
affect each of their projects. [Stay
informed](https://developers.google.com/maps/support#staying_informed) about major updates, deprecations, and other changes.

## Installation

Always specify a version number in your dependencies instead of using an
optimistic operator (`~>`) since that can lead to unpredictable and
unrepeatable builds. The Driver SDK for iOS adheres to
[semantic versioning](https://semver.org), and new major version releases
include breaking changes.

> [!NOTE]
> **Note:** Driver SDK for iOS does not support installation using Carthage.

### CocoaPods

An example Podfile dependency using [Podfile](https://guides.cocoapods.org/using/the-podfile.html#specifying-pod-versions) syntax:

```
      source "https://github.com/CocoaPods/Specs.git"

      target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
        pod 'GoogleRidesharingDriver', '2.0.0'
      end
    
```

### Swift Package Manager


The Driver SDK can be installed via [Swift Package Manager](https://developer.apple.com/documentation/xcode/swift-packages). To add the SDK, ensure you have
removed any existing Driver SDK dependencies.


To add the SDK to a new or existing project, follow these steps:

1. Open your Xcode `project` or `workspace`, then go to **File \> Add Package Dependencies**.
2. Enter <https://github.com/googlemaps/ios-driver-sdk> as the URL, press **Enter** to pull in the package, and click "Add Package".
3. To install a specific `version`, set the **Dependency Rule** field to one of the version-based options. For new projects, we recommend specifying the latest version and using the "Exact Version" option. Once complete, click "Add Package".
4. From the **Choose Package Products** window, verify `GoogleRidesharingDriver` will be added to your designated `main` target. Once complete, click "Add Package".
5. To verify your installation, navigate to your target's **General** pane. In the **Frameworks, Libraries, and Embedded Content** you should see the installed packages. You can also view the "Package Dependencies" section of "Project Navigator" to verify the package and its version.

To update the `package` for an existing project, follow these steps:

1. From Xcode, go to **File \> Packages \> Update To Latest Package Versions**.
2. To verify your installation, go to the **Package Dependencies** section of **Project Navigator** to verify the package and its version.

**Important:** Sometimes, artifacts cannot be resolved or errors can occur, in this case select "File \> Packages \> Reset Package Cache".

<br />

## Maintenance and upgrade

To build with the latest improvements, regularly check for newer versions and
update your version specifications. If you are updating to a new major version,
check the
[release notes](https://developers.google.com/maps/documentation/mobility/services/resources/relnotes_driver_sdk_ios.md.txt)
for backwards-incompatible changes and how to update your code.

### Cocoapods

1. Open a terminal and go to the directory containing the `Podfile`:

   ```
   cd <path-to-project>
   ```
2. Run `pod outdated` to see if a newer version of the Driver SDK for iOS is available.
3. If a newer version of the SDK is found, update your `Podfile` with this new version. See [Specifying pod versions](https://guides.cocoapods.org/using/the-podfile.html#specifying-pod-versions) to learn how to set a specific version in your `Podfile`.
4. Run `pod update`.
5. Make any necessary changes as a result of the upgrade. See the [Release Notes](https://developers.google.com/maps/documentation/mobility/driver-sdk/scheduled/ios/releases) for a list of the changes in each release.
6. Clean and rebuild your project by selecting **Product \> Clean** and then **Product \> Build**

### Manual installation


[Get the link to the latest source files](https://developers.google.com/maps/documentation/mobility/driver-sdk/scheduled/ios/minimum-requirements.md.txt#get_the_driver_sdk_2)
at Installing the SDK.

In addition to polling for newer versions, Google Cloud
[project
owners](https://cloud.google.com/iam/docs/roles-overview#basic) receive emails about backwards incompatible changes that may affect their projects. To
get proactive notification about backwards incompatible changes,
[assign
the owner role](https://cloud.google.com/iam/docs/granting-changing-revoking-access) with a monitored email address for each of your projects.