启用结算功能并创建 API 密钥后,您就可以设置 Xcode 了 一个项目。
每个版本都有相应的版本说明 发布。
第 1 步:安装所需的软件
如需使用 Navigation SDK for iOS 构建项目,您必须下载并安装:
- Xcode 15.0 版或更高版本
第 2 步:创建 Xcode 项目并安装 Navigation SDK
Swift Package Manager
Navigation SDK 可通过 Swift Package Manager 的相关文档。要添加 SDK,请确保您已 移除了任何现有的 Navigation SDK 依赖项。
如需将 SDK 添加到新项目或现有项目,请按以下步骤操作:
-
打开 Xcode
project
或workspace
,然后转到 File >添加软件包依赖项。 - 输入 https://github.com/googlemaps/ios-navigation-sdk 作为网址,然后按 Enter 键 以提取软件包,然后点击“Add Package”(添加软件包)。
-
如需安装特定的
version
,请将 Dependency Rule 字段设置为以下其中一项: 基于版本的选项对于新项目,我们建议您指定最新版本和 使用“确切版本”选项。完成后,点击“添加软件包”。 -
在 Choose Package Products(选择软件包产品)窗口中,验证
GoogleNavigation
是否已添加到 您指定的main
目标。完成后,点击“添加软件包”。 -
如需验证安装,请前往目标的
General
窗格。 在框架、库和嵌入式内容中,您应该会看到已安装的软件包。 您还可以查看“Package Dependencies”“Project Navigator”部分 以验证软件包及其版本。
如需更新现有项目的 package
,请按以下步骤操作:
如果您要从 9.0.0 之前的版本升级,就必须移除 以下依赖项:
GoogleMapsBase
、GoogleMapsCore
和GoogleMapsM4B
。请勿移除GoogleMaps
。有关详情,请参阅 9.0.0 版版本说明。在您的 Xcode 项目配置设置中,找到 Frameworks, Libraries, 和嵌入式内容。使用减号(-) 移除以下框架:
GoogleMapsBase
(仅适用于从 9.0.0 之前的版本进行的升级)GoogleMapsCore
(仅适用于从 9.0.0 之前的版本进行的升级)GoogleMapsM4B
(仅适用于从 9.0.0 之前的版本进行的升级)
- 在 Xcode 中,转到“File”(文件)>文件包 >更新到最新的软件包版本”。
- 如需验证安装,请前往 Project Navigator 的 Package Dependencies 部分 以验证软件包及其版本。
如需移除使用
CocoaPods
,请按以下步骤操作:
- 关闭 Xcode 工作区。打开终端并执行以下命令:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all
-
移除
Podfile
、Podfile.resolved
和 Xcodeworkspace
(如果您不将其用于 CocoaPods 之外的任何其他用途)。
- </ph>
-
在您的 Xcode 项目配置设置中,找到 Frameworks, Libraries,
和嵌入式内容。使用减号(-) 移除以下框架:
<ph type="x-smartling-placeholder">
- </ph>
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
GoogleNavigation.xcframework
-
从 Xcode 项目的顶层目录中,移除
GoogleMaps
软件包。
CocoaPods
Navigation SDK for iOS 可作为 CocoaPods Pod。 CocoaPods 是一种用于 Swift 和 Objective-C Cocoa 项目的开源依赖项管理器。
如果您尚未安装 CocoaPods 工具,请在 macOS 上从终端运行以下命令进行安装。有关详情,请参阅 CocoaPods 入门指南。
sudo gem install cocoapods
为 Navigation SDK for iOS 创建 Podfile
并使用
安装 API 及其依赖项:
- 如果您还没有 Xcode 项目,请立即创建一个并将其保存到
本地机器如果您是 iOS 开发新手:
<ph type="x-smartling-placeholder">
- </ph>
- 创建新项目。
- 选择 iOS >App 模板。
- 在项目选项屏幕上:
<ph type="x-smartling-placeholder">
- </ph>
- 输入项目名称。
- 记录 Bundle identifier 字段的值。 您可以使用该值在下方限制您的 API 密钥。
- 将项目的 Interface 设置为 Storyboard。
- 将语言设置为 Swift 或 Objective-C。
- 在您的项目目录中创建一个名为
Podfile
的文件。此文件可定义您项目的依赖项。 - 修改
Podfile
并添加您的依赖项及其依赖项 版本。 这是一个示例,其中包含创建 适用于 iOS 的 Navigation SDK: # Cocoapods 安装参考 # 请务必定期运行source 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleNavigation', '9.1.0' end
pod outdated
,以检测较新的 版本。如有必要,请升级 最新版本。 - 保存
Podfile
。 打开终端并转到包含
Podfile
的目录:cd <path-to-project>
运行
pod install
命令。这会安装Podfile
中指定的 API 以及所有依赖项。pod install
关闭 Xcode,然后打开(双击)您项目的
.xcworkspace
文件以启动 Xcode。从此刻开始,您必须使用.xcworkspace
文件打开项目。
如需更新现有项目的 API,请按以下步骤操作:
- 打开终端,转到包含
Podfile
的项目目录。 - 运行
pod update
命令。这会更新Podfile
中指定的版本更新到最新版本。
手动安装
本指南介绍了如何手动添加包含 将 Navigation SDK for iOS 和 Maps SDK for iOS 添加到您的项目中,并在 Xcode 中配置您的构建设置。XCFramework 是一个二进制软件包,可在多个平台(包括使用 M1 芯片组的机器)上使用
请按照以下步骤安装适用于 iOS 版 Navigation SDK 的 XCFrameworks。 和 Maps SDK for iOS:
- 下载以下 SDK 二进制文件和资源文件: <ph type="x-smartling-placeholder">
- 启动 Xcode,并打开现有的项目或创建新项目。如果您是第一次使用 iOS,请创建一个新项目,并选择 iOS 应用模板。
- 从项目中移除所有现有的地图、导航和地点引用。
- 将以下 XCFrameworks 拖动到位于
框架、库和嵌入式内容:用于安装 Google 地图
和 Navigation SDK(当系统提示时,选择 Copy items if needed):
<ph type="x-smartling-placeholder">
- </ph>
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
GoogleNavigation.xcframework
- 从您下载的 GoogleMapsResources 中拖动
GoogleMaps.bundle
放入 Xcode 项目的顶级目录中当系统提示时 确保已选中 Copy items if needed。 - 从您下载的 GoogleNavigationResources 中拖动
GoogleNavigation.bundle
放入 Xcode 项目的顶级目录中出现提示时,请确保 已选择将内容复制到目标群组的文件夹。 - 从项目导航器中选择您的项目,然后选择 应用的目标
- 打开 Build Phases 标签,并在
将二进制文件与库相关联,添加以下框架和库:
<ph type="x-smartling-placeholder">
- </ph>
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
- 在应用的目标中,选择 Capabilities 标签页。
开启 Background Modes,然后启用以下模式:
<ph type="x-smartling-placeholder">
- </ph>
- 音频、AirPlay 和画中画
- 位置信息更新
- 选择您的项目(而不是特定目标),然后打开 Build
设置标签页。在Other Linker Flags(其他链接器标记)部分中,执行以下操作:
为调试和发布添加了
‑ObjC
。 如果看不到这些设置,请在以下位置更改过滤条件: Build Settings 栏从基本更改为全部。 - 打开
Info.plist
并添加以下键值对: <ph type="x-smartling-placeholder">- </ph>
- 键:
NSLocationWhenInUseUsageDescription
(隐私权 - 使用时的位置说明)
值:“此应用需要获得相关权限才能使用您的位置信息进行精细导航。” - 密钥:
NSLocationAlwaysAndWhenInUseUsageDescription
(隐私 - 始终及使用时的位置信息使用说明)
值:“此应用需要获得相关权限才能使用您的位置信息进行精细导航。”
- 键:
第 3 步:检查 Apple 隐私清单文件
Apple 要求为 App Store 中的应用提供应用隐私权详细信息。如需了解最新动态和更多信息,请访问 Apple App Store 隐私权详情页面。
Apple 隐私清单文件包含在 SDK 的资源包中。如需验证隐私清单文件是否包含在内并检查其内容,请创建应用的归档,并从归档中生成隐私报告。
第 4 步:将您的 API 密钥添加到项目中
以下示例展示了如何在 Xcode 中将 API 密钥添加到项目中:
Swift
按照以下方法向 AppDelegate.swift
添加 API 密钥:
- 添加以下 import 语句:
import GoogleMaps import GoogleNavigation
- 将以下内容添加到您的
application(_:didFinishLaunchingWithOptions:)
中 方法:GMSServices.provideAPIKey("YOUR_API_KEY")
Objective-C
按照以下方法向 AppDelegate.m
添加 API 密钥:
- 添加以下 import 语句:
@import GoogleMaps; @import GoogleNavigation;
- 将以下内容添加到您的
application:didFinishLaunchingWithOptions:
中 方法:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
第 5 步:添加地图
这段代码演示了如何向现有的 ViewController
添加简单的地图,
包括一些导航的初始设置
在启用导航之前,用户必须同意条款和
条件。如需提示用户,请调用
GMSNavigationServices.showTermsAndConditionsDialogIfNeeded()
,然后勾选到
查看条款是否已被接受。如果用户拒绝了条款
mapView.isNavigationEnabled = true
无任何影响,mapView.navigator
为
nil。
Swift
import UIKit import GoogleNavigation class ViewController: UIViewController { var mapView: GMSMapView! var locationManager: CLLocationManager! override func loadView() { locationManager = CLLocationManager() locationManager.requestAlwaysAuthorization() let options = GMSMapViewOptions() options.camera = camera options.frame = .zero mapView = GMSMapView(options: options) // Show the terms and conditions. let termsAndConditionsOptions = GMSNavigationTermsAndConditionsOptions(companyName: "Ride Share Co.") GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(with: termsAndConditionsOptions) { termsAccepted in if termsAccepted { // Enable navigation if the user accepts the terms. self.mapView.isNavigationEnabled = true } else { // Handle the case when the user rejects the terms and conditions. } } view = mapView } // TODO: Add navigation code. }
Objective-C
#import "ViewController.h" @import GoogleNavigation; @interface ViewController () @end @implementation ViewController GMSMapView *_mapView; CLLocationManager *_locationManager; - (void)loadView { _locationManager = [[CLLocationManager alloc] init]; [_locationManager requestAlwaysAuthorization]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.67 longitude:-122.20 zoom:14]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.frame = CGRectZero; options.camera = camera; options.mapID = mapID; _mapView = [[GMSMapView alloc] initWithOptions:options]; // Show the terms and conditions. GMSNavigationTermsAndConditionsOptions *termsAndConditionsOptions = [[GMSNavigationTermsAndConditionsOptions alloc] initWithCompanyName:@"Ride Sharing Co."]; [GMSNavigationServices showTermsAndConditionsDialogIfNeededWithOptions:termsAndConditionsOptions callback:^(BOOL termsAccepted) { if (termsAccepted) { // Enable navigation if the user accepts the terms. _mapView.navigationEnabled = YES; } else { // Handle the case when the user rejects the terms and conditions. } }]; self.view = _mapView; } // TODO: Add navigation code. @end
运行您的应用。您将看到一张以华盛顿州柯克兰为中心的地图。
如果看不到地图,请尝试以下操作:
- 确认您提供的 API 密钥正确无误。
- 检查是否已在 Cloud 控制台中启用 NavSDK。
- 如果 Nav SDK 已安装,但您的项目未使用 Nav SDK API,请将其从二进制文件中移除。
如果您是移动服务客户
如果您是移动服务客户,请了解结算 。如需详细了解录制功能 请参阅 设置结算信息。 如需了解如何向 Navigation SDK 实现添加事务 ID,请参阅 将您的服务使用情况与移动事务相关联。
后续步骤
现在,您已经有了 API 密钥和 Xcode 项目,接下来就可以创建和运行应用了。 iOS 版 Navigation SDK 提供了相关教程, 开始使用。如需了解详情,请参阅以下文档: