SwiftでGoogle Map SDK使ってみた!
とりあえずMapを表示するくらいなら思った以上に簡単でした。CocoaPodsでSDKが導入できるので楽ですね。
導入は、以下のドキュメントを読めばわかりますが、Swiftで使うのにちょっとハマりました。
Getting Started | Google Maps SDK for iOS | Google Developers
Bridging-Header作って、AppDelegate.swiftにAPI Keyを設定する
ドキュメント読むと、API Keyを設定する方法がObj-Cの方法しか載ってない気がするんですよね・・・。AppDelegate.mって書いてあるし・・・。
とりあえずCocoaPodsでSDKがダウンロードできたら、Bridging-Header作りました。
記事によっては作る必要ないって書いてありますが、あんまり詳しくないのでまあ作ってます。以下のような感じ。
#ifndef GoogleMapSample_GoogleMapSample_Bridging_Header_h #define GoogleMapSample_GoogleMapSample_Bridging_Header_h #import <GoogleMaps/GoogleMaps.h> #endif
Bridging-Headerの作り方は、以下のQiitaとか見ればわかると思います。
んで、以下のような感じでAppDelegate.swiftにAPI Keyの設定を書きます。
import UIKit import GoogleMaps @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { .... func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { GMSServices.provideAPIKey("API Key") return true } .... }
あとは、公式のドキュメントを順番に進めていけばGoogleMapが出ると思います。以下のような感じでMapが表示されます!
地味なハマりポイント - API Key取得時のBundle Identifierの設定
ビルドして動いたんだけど、灰色の画面に赤いピンだけ表示される!みたいな状況に一度なりました。
Logを見てみると、Error Domain=com.google.HTTPStatus Code=400 "The operation couldn’t be completed. (com.google.HTTPStatus error 400.)"
みたいなのが流れてる場合があります。
このパターンになったら、Google Developers ConsoleのAPI Keyの取得手順が間違っている可能性があります。
なので、再度API Keyの設定等を確認した方がいいです。
私はAPI Keyを取得する際に設定するBundle Identifierが実行しているプロジェクトと違っていて、この現象が起きました。
ドキュメント的には、Step 5: Get an iOS API keyの手順ですね。
まとめ
CocoaPodsでSDKも導入できるのは簡単でいいですね。
まだドキュメント内に書いてあるサンプルコードしか動かしてないですが、予想していたよりも入りが簡単で良かった。
まずMapが出ないとモチベーション保てないからね・・・。