Set up an Xcode project

After you enable billing and create an API key, you're ready to set up the Xcode project that you use to develop your app.

Release notes are available for each release.

Step 1: Install the required software

To build a project using the Navigation SDK for iOS, you must download and install:

  • Xcode version 16.0or later

Step 2: Create the Xcode project and install the Navigation SDK

Swift Package Manager

The Navigation SDK can be installed via Swift Package Manager . To add the SDK, ensure you have removed any existing Navigation 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-navigation-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".

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

  1. To verify your installation, go to the Package Dependencies section of Project Navigator to verify the package and its version.
To remove existing Navigation SDK for iOS installed manually, follow these steps:
  1. From your Xcode project configuration settings, find Frameworks, Libraries, and Embedded Content . Use the minus sign(-) to remove the following framework:
    • GoogleMaps.xcframework
    • GoogleNavigation.xcframework
  2. From the top level directory of your Xcode project, remove the GoogleMaps bundle.

Manual installation

This guide shows how to manually add the XCFrameworks containing the Navigation SDK for iOS, and the Maps SDK for iOS to your project and configure your build settings in Xcode. An XCFramework is a binary package that you can use on multiple platforms, including machines using the M1 chipset

Follow these steps to install the XCFrameworks for the Navigation SDK for iOS, and the Maps SDK for iOS:

  1. Download the following SDK binaries and resource files:
  2. Launch Xcode and either open an existing project, or create a new project. If you're new to iOS, create a new project and select the iOS App template.
  3. Remove all existing Maps, Navigation, and Places references from the project.
  4. Drag the following XCFrameworks into your project under Frameworks, Libraries, and Embedded Contentto install both the Maps and Navigation SDKs (when prompted, select Copy items if needed):
    • GoogleMaps.xcframework
    • GoogleNavigation.xcframework
  5. Drag GoogleMaps.bundle from GoogleMapsResourcesyou downloaded into the top level directory of your Xcode project. When prompted, ensure Copy items if neededis selected.
  6. Drag GoogleNavigation.bundle from GoogleNavigationResourcesyou downloaded into the top level directory of your Xcode project. When prompted, ensure Copy items into destination group's folderis selected.
  7. Select your project from the Project Navigator, and choose your application's target.
  8. Open the Build Phasestab, and within Link Binary with Libraries, add the following frameworks and libraries:
    • Accelerate.framework
    • AudioToolbox.framework
    • AVFoundation.framework
    • Contacts.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libxml2.tbd
    • libz.tbd
    • Metal.framework
    • OpenGLES.framework
    • QuartzCore.framework
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
    • UserNotifications.framework
    • WebKit.framework
  9. In your application's target, select the Capabilitiestab, turn on Background Modes, and enable the following modes:
    • Audio, AirPlay, and Picture in Picture
    • Location updates
  10. Choose your project, rather than a specific target, and open the Build Settingstab. In the Other Linker Flagssection, add ‑ObjC for both debugand release. If these settings are not visible, change the filter in the Build Settingsbar from Basicto All.
  11. Open Info.plist and add the following key-value pairs:
    • Key: NSLocationWhenInUseUsageDescription ( Privacy - Location When In Use Usage Description )
      Value:"This app needs permission to use your location for turn-by-turn navigation."
    • Key: NSLocationAlwaysAndWhenInUseUsageDescription ( Privacy - Location Always and When In Use Usage Description )
      Value:"This app needs permission to use your location for turn-by-turn navigation."

CocoaPods

The Navigation SDK for iOS is available as a CocoaPods pod. CocoaPods is an open source dependency manager for Swift and Objective-C Cocoa projects.

If you don't already have the CocoaPods tool, install it on macOS by running the following command from the terminal. For details, see the CocoaPods Getting Started guide .

sudo gem install cocoapods

Create a Podfile for the Navigation SDK for iOS and use it to install the API and its dependencies:

  1. If you don't have an Xcode project yet, create one now and save it to your local machine. If you're new to iOS development:
    1. Create a new project.
    2. Select the iOS > Apptemplate.
    3. On the project options screen:
      1. Enter the Project Name.
      2. Record the value of the Bundle identifierfield. You can use that value to restrict your API key below.
      3. Set the project Interfaceto Storyboard.
      4. Set the Languageto Swiftor Objective-C.
  2. Create a file named Podfile in your project directory. This file defines your project's dependencies.
  3. Edit the Podfile and add your dependencies along with their versions . Here is an example which includes the dependency you need for the Navigation SDK for iOS: # Cocoapods install reference #
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '16.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '10.2.0'
    end
    Make sure to regularly run pod outdated to detect newer versions. If necessary, upgrade to the latest version .
  4. Save the Podfile .
  5. Open a terminal and go to the directory containing the Podfile :

    cd <path-to-project>
  6. Run the pod install command. This installs the APIs specified in the Podfile , along with any dependencies.

    pod install
  7. Close Xcode, and then open (double-click) your project's .xcworkspace file to launch Xcode. From this time onwards, you must use the .xcworkspace file to open the project.

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

  1. Open a terminal and go to the project directory containing the Podfile .
  2. Run the pod update command. This updates all the APIs specified in the Podfile to the latest version.

Step 3: Add your API key to the project

The following examples show how to add the API key to your project in Xcode:

Swift

Add your API key to your AppDelegate.swift as follows:

  1. Add the following import statements:
     import 
      
     GoogleMaps 
     import 
      
     GoogleNavigation 
    
  2. Add the following to your application(_:didFinishLaunchingWithOptions:) method:
     GMSServices 
     . 
     provideAPIKey 
     ( 
     " YOUR_API_KEY 
    " 
     ) 
    

Objective-C

Add your API key to your AppDelegate.m as follows:

  1. Add the following import statements:
     @import 
      
     GoogleMaps 
     ; 
     @import 
      
     GoogleNavigation 
     ; 
    
  2. Add the following to your application:didFinishLaunchingWithOptions: method:
     [ 
     GMSServices 
      
     provideAPIKey 
     : 
     @" YOUR_API_KEY 
    " 
     ]; 
    

Step 4 (optional): Inspect Apple Privacy Manifest file

Apple requires app privacy details for apps on the App Store. Visit the Apple App Store Privacy Details page for updates and more information.

The Apple Privacy Manifest file is included in the resources bundle for the SDK. To verify that the Privacy Manifest File has been included, and to inspect its contents, create an archive of your app and generate a privacy report from the archive.

If you are a Mobility Services customer

If you are a Mobility Services customer, learn about billing in the Mobility documentation. For more information about recording transactions, see Set up billing . To learn how to add transaction IDs to your Navigation SDK implementation, see Associate your service usage to Mobility transactions .

What's next

Now that you have an API key and an Xcode project, you can create and run apps. The Navigation SDK for iOS provides tutorials that can help you get started. For more details, see:

Create a Mobile Website
View Site in Mobile | Classic
Share by: