このガイドの手順に沿って、Places SDK for iOS をダウンロードし、ライブラリとその依存関係をアプリに追加して、無料で API キーを入手してください。
各リリースのリリースノートを確認できます。
ステップ 1: Xcode の最新版を入手する
Places SDK for iOS を使用してプロジェクトを作成するには、次のものが必要です。
手順 2: SDK をインストールする
新しいプロジェクトに API をインストールする手順は次のとおりです。CocoaPods を使う
Places SDK for iOS は、Places API のすべての機能を含む CocoaPod Pod として提供されます。
CocoaPods は、Swift プロジェクトと Objective-C Cocoa プロジェクトのオープンソース依存関係マネージャーです。CocoaPods ツールをまだインストールしていない場合は、ターミナルから次のコマンドを実行して macOS にインストールします。詳しくは、CocoaPods スタートガイドをご覧ください。
sudo gem install cocoapods
Places SDK for iOS 用に Podfile
を作成し、それを使用して SDK とその依存関係をインストールします。
- Xcode プロジェクトをまだ作成していない場合は、ここで作成してローカルマシンに保存しますiOS 開発を初めて行う場合は、新しいプロジェクトを作成し、[iOS App template] を選択します。
- プロジェクトのディレクトリに、
Podfile
という名前のファイルを作成します。このファイルでプロジェクトの依存関係を定義します。 Podfile
を編集して、依存関係をそのバージョンとともに追加します。アプリケーションのターゲット名とGooglePlaces
Pod の名前を指定する例を次に示します。source 'https://github.com/CocoaPods/Specs.git' platform :ios, '13.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '7.4.0' end
定期的にバージョンを実行するようpod outdated
を実行して、常に最新バージョンであることを検出してください。Podfile
を保存します。ターミナルを開き、
Podfile
を含むディレクトリに移動します。cd <path-to-project>
pod install
コマンドを実行します。Podfile
で指定した API とその依存関係がインストールされます。pod install
Xcode を終了し、プロジェクトの
.xcworkspace
ファイルを(ダブルクリックして)開いて、Xcode を起動します。これ以降、このプロジェクトを開くには.xcworkspace
ファイルを使用する必要があります。
既存のプロジェクトの API を更新する手順は次のとおりです。
- ターミナルを開き、
Podfile
を含むプロジェクト ディレクトリに移動します。 pod update
コマンドを実行します。Podfile
で指定されたすべての API が最新バージョンに更新されます。
Carthage を使用する
Places SDK for iOS は、Swift および Objective-C Cocoa プロジェクト用のシンプルな分散型の依存関係マネージャーである Carthage と併用できます。
- Carthage をインストールします。いくつかの方法があります。正確な手順については、Carthage の README ファイルをご覧ください。
- Xcode プロジェクトをまだ作成していない場合は、ここで作成してローカルマシンに保存しますiOS 開発を初めて行う場合は、新しいプロジェクトを作成し、[iOS App template] を選択します。
- プロジェクトのディレクトリに、
Cartfile
という名前のファイルを作成します。このファイルは、プロジェクトの依存関係を定義します。 Cartfile
を編集して、そのバージョンとともに依存関係を追加します。
binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
Cartfile
を保存します。- ターミナル ウィンドウで、
Cartfile
があるディレクトリに移動します。
cd <path-to-project>
carthage update
コマンドを実行します。Cartfile
で指定した API とその依存関係がインストールされます。- Finder のプロジェクト ディレクトリで、
Carthage/Build/iOS
の下にあるダウンロードしたフレームワーク ファイルに移動します。 - 次のバンドルをプロジェクトにドラッグします(プロンプトが表示されたら、[必要に応じてアイテムをコピー] を選択します)。
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- プロジェクトで
GooglePlaces.xcframework
を右クリックし、[Show In Finder] を選択します。 GooglePlaces.bundle
をResources
フォルダからプロジェクトにドラッグします。プロンプトが表示されたら、[Copy items into destination group's folder] が選択されていないことを確認します。- プロジェクト ナビゲータで目的のプロジェクトを選択し、アプリのターゲットを選択します。
- [Build Phases] タブを開き、[Link Binary with Libraries] で次のフレームワークとライブラリを追加します。
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
特定のターゲットではなくプロジェクトを選択し、[Build Settings] タブを開きます。
- [その他のリンカーフラグ] セクションで、
-ObjC
を追加します。これらの設定が表示されていない場合は、[Build Settings] バーのフィルタを [Basic] から [All] に変更します。
既存のプロジェクトの API を更新する手順は次のとおりです。
- ターミナルを開き、
Cartfile
を含むプロジェクト ディレクトリに移動します。 carthage update
コマンドを実行します。Cartfile
で指定されたすべての API が最新バージョンに更新されます。
手動でインストールする
このガイドでは、GooglePlaces フレームワークをプロジェクトに手動で追加し、Xcode でビルド設定を構成する方法について説明します。
- SDK のソースファイル(GooglePlaces-7.4.0)をダウンロードします。
- ダウンロードしたソースファイルを解凍します。
- Xcode を起動し、既存のプロジェクトを開くか、新しいプロジェクトを作成します。iOS 開発を初めて行う場合は、新しいプロジェクトを作成し、[iOS App template] を選択します。
- プロジェクトから以前のリリースのマップのバンドルをすべて削除します。
- 次のバンドルをプロジェクトにドラッグします(プロンプトが表示されたら、[必要に応じてアイテムをコピー] を選択します)。
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- プロジェクトで
GooglePlaces.xcframework
を右クリックし、[Show In Finder] を選択します。 GooglePlaces.bundle
をResources
フォルダからプロジェクトにドラッグします。プロンプトが表示されたら、[Copy items into destination group's folder] が選択されていないことを確認します。- プロジェクト ナビゲータで目的のプロジェクトを選択し、アプリのターゲットを選択します。
- [Build Phases] タブを開き、[Link Binary with Libraries] で次のフレームワークとライブラリを追加します。
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
特定のターゲットではなくプロジェクトを選択し、[Build Settings] タブを開きます。
- [その他のリンカーフラグ] セクションで、
-ObjC
を追加します。これらの設定が表示されていない場合は、[Build Settings] バーのフィルタを [Basic] から [All] に変更します。
XCFramework をインストールする
XCFramework は、Places SDK for iOS をインストールするために M1 チップセットを使用しているマシンを含む、複数のプラットフォームで使用できるバイナリ パッケージです。このガイドでは、Places SDK for iOS を含む XCFramework をプロジェクトに追加し、Xcode でビルド設定を構成する方法について説明します。
カルタッジ付き
Places SDK for iOS は、Swift および Objective-C Cocoa プロジェクト用のシンプルな分散型の依存関係マネージャーである Carthage と併用できます。
- Carthage をインストールします。いくつかの方法があります。正確な手順については、Carthage の README ファイルをご覧ください。
- Xcode プロジェクトがまだない場合は、ここで作成してローカルマシンに保存します。iOS 開発を初めて行う場合は、新しいプロジェクトを作成し、[iOS App template] を選択します。
- プロジェクトのディレクトリに、
Cartfile
という名前のファイルを作成します。このファイルは、プロジェクトの依存関係を定義します。 Cartfile
を編集して、依存関係をそのバージョンとともに追加します。binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
Cartfile
を保存します。ターミナル ウィンドウで、
Cartfile
があるディレクトリに移動します。cd <path-to-project>
carthage update
コマンドを実行します。これにより、Cartfile
で指定された API と、それらの依存関係(存在する場合)がインストールされます。- Finder のプロジェクト ディレクトリで、
Carthage/Build
の下にあるダウンロードしたフレームワーク ファイルに移動します。 - 次の XCFramework をプロジェクトの [Frameworks、ライブラリ、埋め込みコンテンツ] にドラッグします。必ず [埋め込まない] を選択してください。
GooglePlaces-x.x.x/GooglePlaces.xcframework
- プロジェクトで
GooglePlaces.xcframework
を右クリックし、[Find In Finder] を選択します。 GooglePlaces.bundle
をios-arm64/GooglePlaces.framework/Resources
フォルダから Xcode プロジェクトの最上位ディレクトリにドラッグします。プロンプトが表示されたら、[コピー先グループのフォルダにアイテムをコピーする] が選択されていないことを確認します。- プロジェクト ナビゲータからプロジェクトを選択し、アプリケーションのターゲットを選択します。
- [Build Phases] タブを開き、[Link Binary with Libraries] で次のフレームワークとライブラリを追加します。
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
特定のターゲットではなくプロジェクトを選択し、[Build Settings] タブを開きます。
- [その他のリンカーフラグ] セクションで、
-ObjC
を追加します。これらの設定が表示されていない場合は、[Build Settings] バーのフィルタを [Basic] から [All] に変更します。
手動
このガイドでは、Maps SDK for iOS を手動でプロジェクトに追加し、Xcode でビルド設定を構成する方法について説明します。
- SDK ソースファイル(GooglePlaces-7.4.0)をダウンロードします。
- ソースファイルを展開します。[Frameworks] フォルダに移動して XCFramework にアクセスします。
- Xcode を起動して、既存のプロジェクトを開くか、新しいプロジェクトを作成します。iOS を初めて使用する場合は、新しいプロジェクトを作成し、[iOS App template] を選択します。
- 次の XCFramework をプロジェクトの [Frameworks、ライブラリ、埋め込みコンテンツ] にドラッグします。必ず [埋め込まない] を選択してください。
GooglePlaces-x.x.x/GooglePlaces.xcframework
- プロジェクトで
GooglePlaces.xcframework
を右クリックし、[Find In Finder] を選択します。 GooglePlaces.bundle
をios-arm64/GooglePlaces.framework/Resources
フォルダから Xcode プロジェクトの最上位ディレクトリにドラッグします。プロンプトが表示されたら、[コピー先グループのフォルダにアイテムをコピーする] が選択されていないことを確認します。- プロジェクト ナビゲータからプロジェクトを選択し、アプリケーションのターゲットを選択します。
- [Build Phases] タブを開き、[Link Binary with Libraries] で次のフレームワークとライブラリを追加します。
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
特定のターゲットではなくプロジェクトを選択し、[Build Settings] タブを開きます。
- [その他のリンカーフラグ] セクションで、
-ObjC
を追加します。これらの設定が表示されていない場合は、[Build Settings] バーのフィルタを [Basic] から [All] に変更します。
ステップ 3: アプリに API キーを追加する
次の例では、YOUR_API_KEY
を API キーに置き換えます。
Swift
次のように、API キーを AppDelegate.swift
に追加します。
- 次の import ステートメントを追加します。
import GooglePlaces
application(_:didFinishLaunchingWithOptions:)
メソッドに以下を追加します。YOUR_API_KEY は API キーに置き換えます。GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
次のように、API キーを AppDelegate.m
に追加します。
- 次の import ステートメントを追加します。
@import GooglePlaces;
application:didFinishLaunchingWithOptions:
メソッドに以下を追加します。YOUR_API_KEY は API キーに置き換えます。[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
ステップ 4: コードの記述を開始する
次のコードサンプルは、現在の場所を取得する方法を示しています。
Swift
import GooglePlaces import UIKit class GetStartedViewController : UIViewController { // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables. @IBOutlet private var nameLabel: UILabel! @IBOutlet private var addressLabel: UILabel! private var placesClient: GMSPlacesClient! override func viewDidLoad() { super.viewDidLoad() placesClient = GMSPlacesClient.shared() } // Add a UIButton in Interface Builder, and connect the action to this function. @IBAction func getCurrentPlace(_ sender: UIButton) { let placeFields: GMSPlaceField = [.name, .formattedAddress] placesClient.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: placeFields) { [weak self] (placeLikelihoods, error) in guard let strongSelf = self else { return } guard error == nil else { print("Current place error: \(error?.localizedDescription ?? "")") return } guard let place = placeLikelihoods?.first?.place else { strongSelf.nameLabel.text = "No current place" strongSelf.addressLabel.text = "" return } strongSelf.nameLabel.text = place.name strongSelf.addressLabel.text = place.formattedAddress } } }
Objective-C
#import "GetStartedViewController.h" @import GooglePlaces; @interface GetStartedViewController () // Add a pair of UILabels in Interface Builder and connect the outlets to these variables @property (weak, nonatomic) IBOutlet UILabel *nameLabel; @property (weak, nonatomic) IBOutlet UILabel *addressLabel; @end @implementation GetStartedViewController { GMSPlacesClient *_placesClient; } - (void)viewDidLoad { [super viewDidLoad]; _placesClient = [GMSPlacesClient sharedClient]; } // Add a pair of UILabels in Interface Builder and connect the outlets to these variables. - (IBAction)getCurrentPlace:(UIButton *)sender { GMSPlaceField placeFields = (GMSPlaceFieldName | GMSPlaceFieldFormattedAddress); __weak typeof(self) weakSelf = self; [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:placeFields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) { __typeof__(self) strongSelf = weakSelf; if (strongSelf == nil) { return; } if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } GMSPlace *place = likelihoods.firstObject.place; if (place == nil) { strongSelf.nameLabel.text = @"No current place"; strongSelf.addressLabel.text = @""; return; } strongSelf.nameLabel.text = place.name; strongSelf.addressLabel.text = place.formattedAddress; }]; } @end
次のステップ
プロジェクトの構成が完了したら、サンプルアプリを試すことができます。CocoaPods v1.6.1 がインストールされている必要があります。