iOS で Google マップを使い始める前に、Google Maps SDK for iOS をダウンロードして、API キーを取得する必要があります。
各リリースに対する完全なリリースノートが提供されています。
Google Maps SDK for iOS を Google Maps APIs Premium Plan ライセンスで使用している場合は、本ドキュメントではなく 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 ツールをインストールします。詳細については、CocoaPods スタートガイドを参照してください。
sudo gem install cocoapods
Google Maps SDK for iOS の Podfile を作成し、これを使用して API とその依存関係をインストールします。
- Xcode プロジェクトがまだない場合は、この時点で作成してローカルマシンに保存します(初めて iOS 開発を行う場合は、Single View Application を作成します)。
- プロジェクトのディレクトリに、
Podfileという名前のファイルを作成します。このファイルでプロジェクトの依存関係を定義します。 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'も追加する必要があります。Podfileを保存します。ターミナルを開いて、以下のように
Podfileがあるディレクトリに移動します。cd <path-to-project>
pod installコマンドを実行すると、Podfileで指定されている API が、その依存関係(存在する場合)とともにインストールされます。pod install
Xcode を終了した後に、プロジェクトの
.xcworkspaceファイルを開いて(ダブルクリックして)Xcode を起動します。以降は、プロジェクトを開く際に.xcworkspaceファイルを使用する必要があります。
手動でインストールする
このガイドでは、プロジェクトに GoogleMaps フレームワークを手動で追加し、Xcode でビルド設定を構成する方法について説明しています。
- SDK ソースファイル GoogleMaps-2.0.1 をダウンロードします。
- ソースファイルを解凍します。
- Xcode を起動し、既存のプロジェクトを開くか、新しいプロジェクトを作成します。初めて iOS 開発を行う場合は、「Single View Application」を作成して、[Use Storyboards] を無効にし、[Use Automatic Reference Counting] を有効にします。
- 次のバンドルをプロジェクトにドラッグします(プロンプトが表示されたら、[Copy items if needed] を選択します)。
Subspecs/Base/Frameworks/GoogleMapsBase.frameworkSubspecs/Maps/Frameworks/GoogleMaps.frameworkSubspecs/Maps/Frameworks/GoogleMapsCore.framework
プレミアム プランのユーザーは、
Subspecs/M4B/Frameworks/GoogleMapsM4B.frameworkも含める必要があります。 - プロジェクトで [
GoogleMaps.framework] を右クリックして、[Show In Finder] を選択します。 - [
GoogleMaps.bundle] を [Resources] フォルダからプロジェクトにドラッグします。プロンプトが表示されたら、[Copy items into destination group's folder] が選択されていないことを確認します。 - プロジェクト ナビゲータでプロジェクトを選択し、アプリのターゲットを選択します。
- [Build Phases] タブを開き、[Link Binary with Libraries] で次のフレームワークを追加します。
GoogleMapsBase.frameworkGoogleMaps.frameworkGoogleMapsCore.frameworkGoogleMapsM4B.framework(プレミアム プランのユーザーのみ)Accelerate.frameworkCoreData.frameworkCoreGraphics.frameworkCoreLocation.frameworkCoreText.frameworkGLKit.frameworkImageIO.frameworklibc++.tbdlibz.tbdOpenGLES.frameworkQuartzCore.frameworkSystemConfiguration.frameworkUIKit.framework
特定のターゲットではなく、プロジェクトを選択して、[Build Settings] タブを開きます。[Other Linker Flags] セクションで、[
-ObjC] を追加します。これらの設定が表示されない場合は、[Build Settings] バーのフィルタを [Basic] から [All] に変更します。Places API for iOS をインストールする場合は、Places API for iOS のスタートガイドをご覧ください。
ステップ 4: API キーを取得する
下のボタンをクリックして、指示に従って操作し、Google Maps SDK for iOS を有効にして、API キーを取得します。プロジェクトに iOS 限定の API キーが既にある場合は、そのキーを使用することもできます。
キーの取得または、次の手順で API キーを取得します。
- Google API Console に移動します。
- プロジェクトを作成または選択します。
- [Continue] をクリックして、Google Maps SDK for iOS を有効にします。
- [Credentials] ページで、API キーを取得します。
注: iOS 限定のキーがある場合は、そのキーを使用することもできます。同じプロジェクト内で任意の iOS アプリに対して同じキーを使用できます。 - API キーが表示されているダイアログで、[Restrict key] を選択して、API キーを iOS 限定にします。
- [Restrictions] セクションで [iOS apps] を選択してから、アプリのバンドル識別子を入力します。例:
com.example.hellomap - [Save] をクリックします。
プロジェクトの API キーのリストに、新しい iOS 限定の API キーが表示されます。API キーは次のような文字列です。
AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0
Google API Console で、既存のキーを探すこともできます。
Google API Console の使用に関する詳細については、API Console のヘルプをご覧ください。
ステップ 5: アプリに API キーを追加する
Swift
以下のように AppDelegate.swift に API キーを追加します。
- 以下のインポート文を追加します。
import GoogleMaps
- 以下を
application(_:didFinishLaunchingWithOptions:)メソッドに追加し、YOUR_API_KEY を実際の API キーに置き換えます。GMSServices.provideAPIKey("YOUR_API_KEY") - Places API も使用している場合は、以下のようにキーを再度追加します。
GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
以下のように AppDelegate.m に API キーを追加します。
- 以下のインポート文を追加します。
@import GoogleMaps;
- 以下を
application:didFinishLaunchingWithOptions:メソッドに追加し、YOUR_API_KEY を実際の API キーに置き換えます。[GMSServices provideAPIKey:@"YOUR_API_KEY"];
- 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
アプリケーションを実行します。これで、オーストラリアのシドニーを中心とした、1 つのマーカーが追加されている地図が表示されます。地図が表示されず、マーカーのみが表示されている場合は、API キーを指定しているか確認してください。
ステップ 7: API で使用する URL スキームを宣言する
iOS 9 と Xcode 7 以降では、アプリの Info.plist ファイルでスキームを指定して、開く URL スキームを宣言する必要があります。
ユーザーが地図上の Google ロゴをクリックすると、Google Maps SDK for iOS
によって
Google マップのモバイル アプリが開かれます。そのため、アプリで関連する URL スキームを宣言する必要があります。
Google Maps SDK for iOS で使用する URL スキームを宣言するには、Info.plist に次の行を追加します。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>googlechromes</string>
<string>comgooglemaps</string>
</array>
次のスクリーンショットは、Xcode でのユーザー インターフェースでの設定を示しています。

この宣言を行わないと、ユーザーが地図上の 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 以降では、 Google Maps SDK for iOS は CocoaPods 経由でのインストールでのみ提供されています。
静的なフレームワークを含む zip ファイルから Google Maps SDK for iOS をインストールした場合は、次の操作を行ってください。
- Xcode のプロジェクトで、以前のフレームワークへの参照をすべて削除します。
- 上の注記 に従って、CocoaPods を使用して Google Maps SDK for iOS をインストールします。
-
アップグレードに伴う必要な変更を行います。 各リリースでの変更点は、リリースノートをご覧ください。
-
[Product] > [Clean] を選択してプロジェクトのクリーンアップを行った後、[Product] > [Build] を選択して再ビルドを行います。
Google-Maps-iOS-SDK pod から Google Maps SDK for iOS をインストールした場合は、次の操作を行ってください。
- pod 名を
GoogleMapsに変更します。 pod installを実行します。-
アップグレードに伴う必要な変更を行います。 各リリースでの変更点は、リリースノートをご覧ください。
-
[Product] > [Clean] を選択してプロジェクトのクリーンアップを行った後、[Product] > [Build] を選択して再ビルドを行います。
GoogleMaps pod から Google Maps SDK for iOS をインストールした場合は、次の操作を行ってください。
