このガイドの手順に沿って、Places SDK for iOS をダウンロードして、ライブラリとその依存関係をアプリに追加し、料金なしで API キーを取得してください。
リリースノートは、リリースごとに公開されています。
ステップ 1: Xcode の最新版を入手する
Places SDK for iOS を使用してプロジェクトを構築するには、以下が必要です。
手順 2: SDK をインストールする
新しいプロジェクトに API をインストールする手順は次のとおりです。CocoaPods を使う
Places SDK for iOS は、すべてのプレイス機能を含む CocoaPod Pod GooglePlaces として提供されています。
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, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.0.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
carthage outdated
を定期的に実行して、新しいバージョンが存在するタイミングを検出し、常に最新バージョンであることを確認します。Cartfile
を保存します。- ターミナル ウィンドウで、
Cartfile
があるディレクトリに移動します。
cd <path-to-project>
carthage update
コマンドを実行します。Cartfile
で指定した API とその依存関係がインストールされます。- Finder のプロジェクト ディレクトリで、
Carthage/Build/iOS
の下にあるダウンロードしたフレームワーク ファイルに移動します。 - 次のバンドルをプロジェクトにドラッグします(プロンプトが表示されたら、[Copy items if needed] を選択します)。
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-8.0.0 をダウンロードします。
- ダウンロードしたソースファイルを解凍します。
- Xcode を起動し、既存のプロジェクトを開くか、新しいプロジェクトを作成します。iOS 開発が初めての場合は、新しいプロジェクトを作成し、[iOS App template] を選択します。
- 以前のリリースのマップ バンドルをプロジェクトから削除します。
- 次のバンドルをプロジェクトにドラッグします(プロンプトが表示されたら、[Copy items if needed] を選択します)。
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 は、M1 チップセットを使用するマシンなど、複数のプラットフォームで使用できる Places SDK for iOS のインストールを可能にするバイナリ パッケージです。このガイドでは、Places SDK for iOS を含む XCFramework をプロジェクトに追加し、Xcode でビルド設定を構成する方法について説明します。
Carthage を使用
Places SDK for iOS は、Carthage(Swift および Objective-C Cocoa プロジェクト向けのシンプルな分散型依存関係マネージャー)で使用できます。
- 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 をプロジェクト([フレームワーク、ライブラリ、埋め込みコンテンツ] の下)にドラッグします。必ず [埋め込まない] を選択してください。
GooglePlaces-x.x.x/GooglePlaces.xcframework
- プロジェクトで
GooglePlaces.xcframework
を右クリックし、[Show 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-8.0.0 をダウンロードします。
- ソースファイルを解凍します。[Frameworks] フォルダに移動して XCFramework にアクセスします。
- Xcode を起動して、既存のプロジェクトを開くか、新しいプロジェクトを作成します。iOS を初めて使用する場合は、新しいプロジェクトを作成し、iOS アプリ テンプレートを選択します。
- 次の XCFramework をプロジェクト([フレームワーク、ライブラリ、埋め込みコンテンツ] の下)にドラッグします。必ず [埋め込まない] を選択してください。
GooglePlaces-x.x.x/GooglePlaces.xcframework
- プロジェクトで
GooglePlaces.xcframework
を右クリックし、[Show 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 がインストールされている必要があります。