一切就绪!

着手开发前,请先阅读我们的开发者文档

激活 Google Maps SDK for iOS

为帮助您起步,我们将引导您在 Google Developers Console 中先完成几项任务:

  1. 创建或选择项目
  2. 激活 Google Maps SDK for iOS
  3. 创建相应密钥
继续

入门指南

您需要下载 Google Maps SDK for iOS,并确保拥有 API 密钥,之后才能开始在 iOS 上使用 Google 地图。

每一个发行版本都有完整的发行说明

如果您通过 Google Maps APIs Premium Plan许可使用 Google Maps SDK for iOS,请参阅 Premium Plan 入门指南

第 1 步:获取最新版本的 Xcode

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

第 2 步:安装 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 入门指南

第 4 步:获取 API 密钥

请点击下面的按钮,其指导您完成启用 Google Maps SDK for iOS 和获取 API 密钥的流程。如果您的项目已有 iOS 特定的 API 密钥,可以使用该密钥。

获取密钥

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

  1. 转至 Google API Console
  2. 创建或选择一个项目。
  3. 点击 Continue 以启用 Google Maps SDK for iOS。
  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 帮助

第 5 步:将 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"];

第 6 步:添加地图

下面的代码演示了如何向现有的 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 密钥。

第 7 步:声明 API 使用的网址架构

从 iOS 9 和 Xcode 7 开始,应用必须通过在 Info.plist 文件中指定架构来声明其打算打开的网址架构。 当用户点击地图上的 Google 徽标时,Google Maps SDK for iOS 会打开 Google 地图移动应用,因此您的应用需要声明相关的网址架构。

要声明 Google Maps SDK for iOS 所使用的 URL 架构,请将以下几行代码添加到您的 Info.plist 中:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>googlechromes</string>
    <string>comgooglemaps</string>
</array>

下面的屏幕截图显示了 Xcode 用户界面中的配置:

Xcode 中的 LSApplicationQueriesSchemes 配置

如果没有上述声明,当用户点按地图上的 Google 徽标时会出现以下错误:

-canOpenURL: failed for URL: "comgooglemaps://" - error:"This app is not allowed to query for scheme comgooglemaps"
-canOpenURL: failed for URL: "googlechromes://" - error:"This app is not allowed to query for scheme googlechromes"

为了消除这些错误,请按如上所述将声明添加到您的 Info.plist 中。

通过 Google Maps SDK 演示项目进行实验

通过 pod try GoogleMaps 试用 SDK 演示。 如需了解更多详情,请参阅有关代码示例的指南。

从早期版本升级

请按照以下说明将一个现有项目升级到最新版本的 Google Maps SDK for iOS。

注:1.9.2 版及更早版本的 Google Maps SDK for iOS 均以 zip 文件的形式提供,其中包含一个静态框架。 那时也提供了从 CocoaPods pod 安装最新版本的选项。 从 1.10.0 版开始,只能通过 CocoaPods 来安装 Google Maps SDK for iOS。

如果您以前从一个包含静态框架的 zip 文件安装了 Google Maps SDK for iOS:

  1. 从您的 Xcode 项目中移除对以前框架的所有引用。
  2. 按照上文中的注中提供的说明操作,使用 CocoaPods 安装 Google Maps SDK for iOS。

  3. 作为升级的结果,请进行任何必要的更改。 请参阅发行说明以获取每个版本中的更改列表。

  4. 选择 Product > Clean,然后选择 Product > Build,清理并重新构建您的项目。

如果您以前从 Google-Maps-iOS-SDK pod 安装了 Google Maps SDK for iOS:

  1. 将您的 pod 名称更改为 GoogleMaps
  2. 运行 pod install
  3. 作为升级的结果,请进行任何必要的更改。 请参阅发行说明以获取每个版本中的更改列表。

  4. 选择 Product > Clean,然后选择 Product > Build,清理并重新构建您的项目。

如果您以前从 GoogleMaps pod 安装了 Google Maps SDK for iOS:

  1. 检查您的 Podfile 以了解任何版本限制,并确保您已移除或更新版本以保证您获得所需的版本。 请参阅发行说明以获取版本号列表。

  2. 运行 pod update

  3. 作为升级的结果,请进行任何必要的更改。 请参阅发行说明以获取每个版本中的更改列表。

  4. 选择 Product > Clean,然后选择 Product > Build,清理并重新构建您的项目。

发送以下问题的反馈:

此网页
Google Maps SDK for iOS
Google Maps SDK for iOS
需要帮助?请访问我们的支持页面