旧版 Google Maps Mobile SDK for Work:iOS

对于采用旧版 Google Maps APIs for Work 或 Google Maps API for Business 许可的客户来说,Google Maps SDK for iOS 作为 Google Maps Mobile SDK for Work 的一部分购买。

本部分文档将说明该 SDK 的设置。

此页面仅适用于拥有旧版 Maps APIs for Work 或 Maps API for Business 许可的客户。此页面不适用于拥有新版 Google Maps APIs Premium Plan2016 年 1 月上市发售)的客户。

概览

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

  1. 下载 SDK。
  2. 将您的 API 密钥添加到 AppDelegate
  3. 添加地图。

下载 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 密钥确定您作为 Google Maps Mobile SDK for Work 客户的身份,并且使您能够获取支持和为您的应用购买配额。 您可以通过注册应用的软件包名称在已启用 Google Maps Mobile SDK 服务的帐号上生成 API 密钥。

验证您的帐号是否已启用 Google Maps Mobile SDK 服务

Google Cloud Support 团队在您注册 Google Maps Mobile SDK for Work 时会启用 Google Maps Mobile SDK 服务。

新项目会启用这一服务。

注:只有此项目的初始所有者才能看到 Google Maps Mobile SDK 服务。 要为其他项目所有者请求查看服务的授权,请在

Google Cloud Support Portal 中提交非技术案例。

您可以按照以下方法验证您的帐号是否已启用必需的 API:

  1. 访问 Google API Console 并登录您的 Google 帐号。
  2. 选择在您订购 Google Maps Mobile SDK for Work 时为您创建的 Google Maps Mobile SDK for Work 项目。 该项目名称以 Google Maps APIs for Business 或 Google Maps for Work 或 Google Maps 开头。 如果您还没有购买该 SDK 的访问权限,请联系[销售]。

  3. Dashboard 上的 APIs 列表中,检查是否已启用 Google Maps Mobile SDK

从 Google API Console 中获取 API 密钥

为您的项目启用 Google Maps Mobile SDK for Work 服务后,您必须生成一个新的 API 密钥。

  1. 转到

    Google API Console 的 Credentials 页面并登录您的 Google 帐号。

  2. 选择在您订购 Google Maps Mobile SDK for Work 时为您创建的 Google Maps Mobile SDK for Work 项目。 该项目名称以 Google Maps APIs for Business 或 Google Maps for Work 或 Google Maps 开头。 如果您还没有购买该 SDK 的访问权限,请联系[销售]。

  3. API keys 列表中,查找具有 iOS 限制的密钥。

  4. 如果您的项目没有 iOS 特定的 API 密钥,请立即通过选择 Create credentials > API key 创建一个。

  5. 在结果对话框中,选择 Restrict key

  6. Restrictions 部分中,选择 iOS apps,然后输入一个或多个应用捆绑包标识符。 例如:com.example.hellomap
  7. 点击 Save

    您的新 iOS API 密钥随即出现在项目的 API 密钥列表中。 API 密钥是类似于如下的字符串:

    AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

将 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 Places API for iOS

您可以在项目中免费使用 Google Places API for iOS,但此 API 不在您的 Google Maps Mobile SDK for Work 许可的涵盖范围内。

这意味着 Google Places API for iOS 不在 Google Maps Mobile SDK for Work 许可的增强支持或 SLA 的涵盖范围内,而且任何消耗均受免费 API 服务条款约束,不会计入您的 Google Maps Mobile SDK for Work 配额。

如需了解有关启用 Google Places API for iOS 的详细信息,请与您的 Google 代表联系。

提供方说明要求

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

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

支持的平台

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

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

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

比较版本

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

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

文档

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