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 Maps 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 Maps 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. 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 may require less work to adapt, rewrite, and test your application, than having to handle backwards-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 older 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 impact each of their projects. Stay informed about major updates, deprecations, and other changes.
Installation
Swift Package Manager
The Maps SDK for iOS can be installed via Swift Package Manager. To add the SDK, ensure you have removed any existing Maps SDK for iOS dependencies.
To add the SDK to a new or existing project, follow these steps:
-
Open your Xcode
project
orworkspace
, then go to File > Add Package Dependencies. - Enter https://github.com/googlemaps/ios-maps-sdk as the URL, press Enter to pull in the package, and click "Add Package".
-
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". -
From the Choose Package Products window, verify
GoogleMaps
(for versions earlier than 9.0.0, verifyGoogleMaps
,GoogleMapsBase
, andGoogleMapsCore
) will be added to your designatedmain
target. Once complete, click "Add Package". -
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:
If you are upgrading from a version earlier than 9.0.0, you must remove the following dependencies:
GoogleMapsBase
,GoogleMapsCore
, andGoogleMapsM4B
after upgrading. Do not remove the dependency forGoogleMaps
. For more information, see the Version 9.0.0 Release Notes.From your Xcode project configuration settings, find Frameworks, Libraries, and Embedded Content. Use the minus sign(-) to remove the following framework:
GoogleMapsBase
(Only for upgrades from versions earlier than 9.0.0)GoogleMapsCore
(Only for upgrades from versions earlier than 9.0.0)GoogleMapsM4B
(Only for upgrades from versions earlier than 9.0.0)
- From Xcode, go to "File > Packages > Update To Latest Package Versions".
- To verify your installation, go to the Package Dependencies section of Project Navigator to verify the package and its version.
To remove existing Maps SDK for iOS dependencies added using
CocoaPods
, follow these steps:
- Close your Xcode workspace. Open terminal and execute the following command:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all
-
Remove the
Podfile
,Podfile.resolved
and the Xcodeworkspace
if you are not using them for anything other than CocoaPods.
CocoaPods
Always specify a version number in your dependencies instead of using an optimistic operator
(~>
) since that can lead to unpredictable and unrepeatable builds. The
Maps SDK for iOS adheres to semantic versioning,
and new major version releases include breaking changes.
An example Podfile dependency using Podfile syntax:
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '8.4.0' end
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 for backwards-incompatible changes and how to update your code.
Swift Package Manager
To update the package
for an existing project, follow these steps:
- From Xcode, go to "File > Packages > Update To Latest Package Versions".
- To verify your installation, go to the Package Dependencies section of Project Navigator to verify the package and its version.
Cocoapods
Open a terminal and go to the directory containing the
Podfile
:cd <path-to-project>
- Run
pod outdated
to see if a newer version of the Maps SDK for iOS is available. - If a newer version of the SDK is found, update your
Podfile
with this new version. See Specifying pod versions to learn how to set a specific version in yourPodfile
. - Run
pod update
. - Make any necessary changes as a result of the upgrade. See the Release Notes for a list of the changes in each release.
- Clean and rebuild your project by selecting Product > Clean and then Product > Build
Manual installation
Get the link to the latest source files at Installing the SDK.
In addition to polling for newer versions, Google Cloud project owners receive emails about backwards incompatible changes that may affect their projects. To get proactive notification about backwards incompatible changes, assign the owner role with a monitored email address for each of your projects.