iOS 版高级计划使用入门

您的 Google Maps APIs Premium Plan许可可以为 Google Maps SDK for iOS 提供增强支持。 本文介绍如何通过Premium Plan创建使用 Google Maps SDK for iOS 的 iOS 应用。

概览

按照此页说明下载 SDK、设置项目并添加地图。 下面概要列出了所需步骤:

  1. 安装 Xcode 和 SDK。
  2. 获取 API 密钥。
  3. 将 API 密钥添加到您的应用。
  4. 添加地图。

安装 Xcode 和 SDK

获取最新版本的 Xcode

要想使用 Google Maps SDK for iOS 构建项目,您需要 7.3 版或更高版本的 Xcode

安装 SDK

使用 CocoaPods

Google Maps SDK for iOS 以 CocoaPods pod 形式提供。CocoaPods 是一种用于 Swift 和 Objective-C Cocoa 项目的开源依赖项管理器。

如果您尚未安装 CocoaPods 工具,请在 macOS 上从终端运行以下命令进行安装。如需了解详情,请参阅 CocoaPods 入门指南

sudo gem install cocoapods

为 Google Maps SDK for iOS 创建一个 Podfile,并使用它来安装 API 及其依赖项:

  1. 如果您尚未创建 Xcode 项目,请立即创建一个并将其保存到您的本地计算机。(如果您刚开始接触 iOS 开发,请创建一个 Single View Application。)
  2. 在您的项目目录中创建一个名为 Podfile 的文件。此文件定义您项目的依赖项。
  3. 编辑 Podfile 并添加您的依赖项。以下示例包含 Google Maps SDK for iOS 和 Places API for iOS(可选)需要的依赖项:
    source 'https://github.com/CocoaPods/Specs.git'
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps'
      pod 'GooglePlaces'
    end

    高级计划客户还必须添加:pod 'GoogleMaps/M4B'

  4. 保存 Podfile
  5. 打开一个终端并转到包含 Podfile 的目录:

    cd <path-to-project>
  6. 运行 pod install 命令。此操作会安装 Podfile 中指定的 API 及其可能具有的任何依赖项。

    pod install
  7. 关闭 Xcode,然后打开(双击)您的项目的 .xcworkspace 文件以启动 Xcode。从此刻开始,您必须使用 .xcworkspace 文件打开项目。

手动安装

本指南介绍如何向您的项目手动添加 GoogleMaps 框架,以及如何在 Xcode 中配置您的构建设置。

  1. 下载 SDK 源文件:GoogleMaps-2.0.1
  2. 解压缩源文件。
  3. 启动 Xcode,并打开现有的项目或创建新项目。如果您刚开始接触 iOS,请创建一个 Single View Application,然后停用 Use Storyboards 并启用 Use Automatic Reference Counting
  4. 将以下捆绑包拖动到您的项目中(系统提示时,请选择 Copy items if needed):
    • Subspecs/Base/Frameworks/GoogleMapsBase.framework
    • Subspecs/Maps/Frameworks/GoogleMaps.framework
    • Subspecs/Maps/Frameworks/GoogleMapsCore.framework

    高级计划客户还必须加入 Subspecs/M4B/Frameworks/GoogleMapsM4B.framework

  5. 在您的项目中右击 GoogleMaps.framework,然后选择 Show In Finder
  6. Resources 文件夹中将 GoogleMaps.bundle 拖动到您的项目中。系统提示时,请确保选中 Copy items into destination group's folder
  7. 从项目导航器中选择您的项目,然后选择您的应用的目标。
  8. 打开 Build Phases 标签,并在 Link Binary with Libraries 中添加以下框架:
    • GoogleMapsBase.framework
    • GoogleMaps.framework
    • GoogleMapsCore.framework
    • GoogleMapsM4B.framework(仅限高级计划客户)
    • Accelerate.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreLocation.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libz.tbd
    • OpenGLES.framework
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  9. 选择您的项目(而不是具体目标),然后打开 Build Settings 标签。在 Other Linker Flags 部分,添加 -ObjC。如果看不到相关设置,请在 Build Settings 栏中将过滤条件由 Basic 更改为 All

  10. 要安装 Places API for iOS,请参阅 Places API for iOS 入门指南

获取 API 密钥

要向 Google Maps SDK for iOS 验证您应用的身份,您需要一个限制为应用特定捆绑包标识符的 API 密钥。 这一组合会创建一个 iOS 特定的 API 密钥

请点击下面的按钮,系统将指导您完成获取 API 密钥的流程。如果您的项目已有具有 iOS 限制的 API 密钥,可以使用该密钥。重要说明:在项目下拉菜单中,您必须选择当您购买 Google Maps APIs Premium Plan 时为您创建的项目。项目名称以 Google Maps APIs for Business 或 Google Maps for Work 或 Google Maps 开头。

获取密钥

或者,请按照下列步骤获取 API 密钥:

  1. 转至 Google API Console
  2. 从项目下拉菜单中,选择 Google Maps Premium 项目。*
  3. 点击 Continue
  4. Credentials 页面上,获取 API 密钥
    注:如果您已有 iOS 特定的 API 密钥,可以使用该密钥。您可以在同一项目中的任何 iOS 应用上使用同一密钥。
  5. 从显示 API 密钥的对话框中,选择 Restrict key 以设置对该 API 密钥的 iOS 限制。
  6. Restrictions 部分,选择 iOS apps,然后输入应用的捆绑包标识符。例如:com.example.hellomap
  7. 点击 Save

    新的 iOS 特定 API 密钥会显示在项目的 API 密钥列表中。API 密钥是类似于如下的字符串:

    AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

您也可以在 Google API Console 中查找现有密钥

如需了解有关使用 Google API Console 的详细信息,请参阅 API Console 帮助

将 API 密钥添加到您的应用

Swift

按以下步骤向 AppDelegate.swift 添加 API 密钥:

  1. 添加以下 import 语句:
    import GoogleMaps
  2. 向您的 application(_:didFinishLaunchingWithOptions:) 方法添加以下内容,使用您的 API 密钥替代 YOUR_API_KEY
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. 如果您也使用 Places API,请按下图所示再次添加密钥:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

按以下步骤向 AppDelegate.m 添加 API 密钥:

  1. 添加以下 import 语句:
    @import GoogleMaps;
  2. 向您的 application:didFinishLaunchingWithOptions: 方法添加以下内容,使用您的 API 密钥替代 YOUR_API_KEY
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. 如果您也使用 Places API,请按下图所示再次添加密钥:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

添加地图

下面的代码演示了如何向现有的 ViewController 添加简单地图。如果您要创建新应用,首先请按照上述安装说明操作,并创建一个新的 Single View Application;停用 Use Storyboards 但启用 Use Automatic Reference Counting (ARC)。

现在,在您应用的默认 ViewController 中添加或更新一些方法来创建和初始化 GMSMapView 的一个实例。

Swift

import UIKit
import GoogleMaps

class YourViewController: UIViewController {

  // You don't need to modify the default init(nibName:bundle:) method.

  override func loadView() {
    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
    let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
    mapView.isMyLocationEnabled = true
    view = mapView

    // Creates a marker in the center of the map.
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
    marker.title = "Sydney"
    marker.snippet = "Australia"
    marker.map = mapView
  }
}

Objective-C

#import "YourViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@implementation YourViewController

// You don't need to modify the default initWithNibName:bundle: method.

- (void)loadView {
  // Create a GMSCameraPosition that tells the map to display the
  // coordinate -33.86,151.20 at zoom level 6.
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                          longitude:151.20
                                                               zoom:6];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  mapView.myLocationEnabled = YES;
  self.view = mapView;

  // Creates a marker in the center of the map.
  GMSMarker *marker = [[GMSMarker alloc] init];
  marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
  marker.title = @"Sydney";
  marker.snippet = @"Australia";
  marker.map = mapView;
}

@end

运行您的应用。您看到的地图应该在澳大利亚悉尼的中心位置带有一个标记。如果您看到了该标记,但看不到地图,请确认您已提供 API 密钥。

更多信息

提供方说明要求

您必须在应用中的法律声明部分加入提供方说明文本。 Google 建议以独立菜单项形式或者“About”菜单项组成部分的形式提供法律声明。

您可以通过调用 GMSServices.openSourceLicenseInfo() 获得提供方说明文本。

支持的平台

使用随 Premium Plan 分发的 Google Maps SDK for iOS 开发 iOS 应用需要满足下面的条件:

  • Xcode 7.3 或更高版本。
  • iOS SDK 8.0 或更高版本。

利用此 SDK 开发的应用适用于 iOS 7.0 和更高版本。

比较版本

下表说明了使用标准 Google Maps SDK for iOS 与使用 Premium Plan 中的 SDK 之间的关键区别。

  标准 Google Maps SDK for iOS Premium Plan
支持渠道 基于社区的支持 获取高级支持
条款 适用 Google Maps/Google Earth API 服务条款 适用 Google Maps APIs Premium Plan使用条款

文档

有关 Google Maps SDK for iOS 的主要信息来源为我们网站其他地方提供的开发者指南和参考文档。