Xcode プロジェクトを設定する

課金を有効にして API キーを作成すると、Xcode を設定できるようになります プロジェクトを作成します。

各バージョンのリリースノート なります。

ステップ 1: 必要なソフトウェアをインストールする

Navigation SDK for iOS を使用してプロジェクトを作成するには、以下をダウンロードしてインストールする必要があります。

  • Xcode バージョン 15.0 以降

ステップ 2: Xcode プロジェクトを作成し、Navigation SDK をインストールする

Swift Package Manager

Navigation SDK は でインストールできます。 Swift Package Manager。SDK を追加するには、 既存の Navigation SDK の依存関係をすべて削除しました。

新規または既存のプロジェクトに SDK を追加する手順は次のとおりです。

  1. Xcode project または workspace を開き、[File >パッケージの依存関係を追加する
  2. URL として「https://github.com/googlemaps/ios-navigation-sdk」と入力し、Enter キーを押します。 [パッケージを追加]をクリックします
  3. 特定の version をインストールするには、[Dependency Rule] フィールドを次のいずれかに設定します。 オプションを提供します。新しいプロジェクトの場合は、最新バージョンと 1 つのバージョンを 「正確なバージョン」を使用して選択します。完了したら、[Add Package] をクリックします。
  4. [Choose Package Products] ウィンドウで、GoogleNavigation が以下に追加されることを確認します。 指定したmainの目標値。完了したら、[Add Package] をクリックします。
  5. インストールを確認するには、ターゲットの General ペインに移動します。 [Frameworks, Libraries, and Embedded Content] に、インストールされたパッケージが表示されます。 [Package Dependencies] ビューもセクション(プロジェクト ナビゲーター) パッケージとそのバージョンを確認します。

既存のプロジェクトの package を更新する手順は次のとおりです。

  1. 9.0.0 より前のバージョンからアップグレードする場合は、 次の依存関係: GoogleMapsBaseGoogleMapsCore、 アップグレード後に GoogleMapsM4B。次の依存関係を削除しないでください。 GoogleMaps。詳しくは、 バージョン 9.0.0 リリースノート

    Xcode プロジェクト構成設定で、フレームワーク、ライブラリ、 および埋め込みコンテンツをご覧ください。マイナス記号(-)を使用して、次のフレームワークを削除します。

    • GoogleMapsBase(9.0.0 より前のバージョンからのアップグレードのみ)
    • GoogleMapsCore(9.0.0 より前のバージョンからのアップグレードのみ)
    • GoogleMapsM4B(9.0.0 より前のバージョンからのアップグレードのみ)
  2. Xcode で、[File] > [パッケージ >最新のパッケージ バージョンへの更新」を選択します。
  3. インストールを確認するには、Project Navigator の [Package Dependencies] セクションに移動します。 パッケージとそのバージョンを確認します。
で確認できます。

次のコマンドを使用して、追加された既存の Navigation SDK 依存関係を削除するには: CocoaPods の手順は次のとおりです。

  1. Xcode ワークスペースを閉じます。ターミナルを開き、次のコマンドを実行します。
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. PodfilePodfile.resolved、および CocoaPods 以外で使用していない場合には、Xcode workspace です。

手動でインストールした既存の Navigation SDK for iOS を削除するには、次の操作を行います。 手順は次のとおりです。
  1. Xcode プロジェクト構成設定で、フレームワーク、ライブラリ、 および埋め込みコンテンツをご覧ください。マイナス記号(-)を使用して、次のフレームワークを削除します。
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  2. Xcode プロジェクトの最上位ディレクトリから、GoogleMaps を削除します。 あります。

CocoaPods

iOS 向け Navigation SDK は、 CocoaPods Pod。 CocoaPods は、Swift と Objective-C の Cocoa プロジェクトで依存関係を管理するためのオープンソース ツールです。

CocoaPods ツールがない場合は、ターミナルから以下のコマンドを実行して、macOS 上に CocoaPods ツールをインストールします。詳しくは、 CocoaPods スタートガイド

sudo gem install cocoapods

iOS 用 Navigation SDK 用の Podfile を作成し、以下を使用します。 API とその依存関係をインストールします。

  1. Xcode プロジェクトがまだない場合は、ここで作成して インストールします。iOS 開発が初めての場合:
    1. 新しいプロジェクトを作成する。
    2. [iOS >App テンプレート。
    3. プロジェクト オプション画面で次の操作を行います。
      1. [Project Name] を入力します。
      2. [バンドル ID] フィールドの値を記録します。 この値を使用して、以下の API キーを制限できます。
      3. プロジェクトの [Interface] を [Storyboard] に設定します。
      4. [言語] を [Swift] または [Objective-C] に設定します。
  2. プロジェクトのディレクトリに、Podfile という名前のファイルを作成します。このファイルでプロジェクトの依存関係を定義します。
  3. Podfile を編集し、依存関係と依存関係を追加します。 バージョン。 この例には、Terraform の実行時に必要な依存関係が含まれ、 iOS 向け Navigation SDK: # Cocoapods インストール リファレンス #
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '9.0.0'
    end
            
    定期的に pod outdated を実行して、新しいものを検出するようにしてください あります。必要に応じて、 最新バージョンに更新されています。
  4. Podfile を保存します。
  5. ターミナルを開き、Podfile を含むディレクトリに移動します。

    cd <path-to-project>
  6. pod install コマンドを実行します。これにより、 Podfile に指定された API とすべての依存関係。

    pod install
  7. Xcode を終了し、プロジェクトの .xcworkspace ファイルを(ダブルクリックして)開いて、Xcode を起動します。これ以降、このプロジェクトを開くには .xcworkspace ファイルを使用する必要があります。

既存のプロジェクトの API を更新する手順は次のとおりです。

  1. ターミナルを開き、Podfile を含むプロジェクト ディレクトリに移動します。
  2. pod update コマンドを実行します。これにより、すべての API が更新されます。 Podfile で指定されたバージョンを最新バージョンに変更します。

手動インストール

このガイドでは、 Navigation SDK for iOS と Maps SDK for iOS をプロジェクトに追加し、Xcode でビルド設定を行います。XCFramework は、M1 チップセットを搭載したマシンなど、複数のプラットフォームで使用できるバイナリ パッケージです。

Navigation SDK for iOS 用の XCFrameworks をインストールする手順は次のとおりです。 および Maps SDK for iOS:

  1. 次の SDK バイナリとリソース ファイルをダウンロードします。
  2. Xcode を起動し、既存のプロジェクトを開くか、新しいプロジェクトを作成します。iOS を初めて使用する場合は、新しいプロジェクトを作成し、 iOS アプリ テンプレート:
  3. プロジェクトから既存のマップ、ナビ、プレイスの参照を削除します。
  4. 次の XCFrameworks を、 フレームワーク、ライブラリ、埋め込みコンテンツ(Google マップと Google マップの両方をインストール) Navigation SDK を使用できます(プロンプトが表示されたら、[Copy items if needed] を選択します)。
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. ダウンロードした GoogleMapsResources から GoogleMaps.bundle をドラッグします Xcode プロジェクトの最上位ディレクトリに移動します。画面の指示に従って [Copy items if needed] が選択されていることを確認します。
  6. ダウンロードした GoogleNavigationResources から GoogleNavigation.bundle をドラッグします。 Xcode プロジェクトの最上位ディレクトリに移動します。プロンプトが表示されたら、 [Copy items to destination group's folder] が選択されています。
  7. プロジェクト ナビゲータでプロジェクトを選択し、 通信できます。
  8. [Build Phases] タブを開き、 Binary をライブラリにリンクして、次のフレームワークとライブラリを追加します。
    • Accelerate.framework
    • AudioToolbox.framework
    • AVFoundation.framework
    • Contacts.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libxml2.tbd
    • libz.tbd
    • Metal.framework
    • OpenGLES.framework
    • QuartzCore.framework
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
    • UserNotifications.framework
    • WebKit.framework
  9. アプリケーションのターゲットで [Capabilities] タブを選択します。 [バックグラウンド モード] をオンにして、次のモードを有効にします。
    • 音声、AirPlay、ピクチャー イン ピクチャー
    • 位置情報の更新
  10. 特定のターゲットではなくプロジェクトを選択して、[Build 設定タブ。[その他のリンカーフラグ] セクションで、 debugrelease の両方に ‑ObjC を追加します。 これらの設定が表示されない場合は、 [Build Settings] バーが [Basic] から [All] に変わります。
  11. Info.plist を開き、次の Key-Value ペアを追加します。
    • キー: NSLocationWhenInUseUsageDescriptionプライバシー - 使用中の位置情報の使用に関する説明
      値: 「このアプリにはターンバイターン方式のナビで位置情報を使用する許可が必要です。」
    • キー: NSLocationAlwaysAndWhenInUseUsageDescriptionプライバシー - 常に位置情報と使用中の使用状況の説明
      値: 「このアプリにはターンバイターン方式のナビで位置情報を使用する許可が必要です。」

ステップ 3: Apple のプライバシー マニフェスト ファイルを調べる

Apple が App Store のアプリについては、アプリのプライバシーに関する詳細情報を必要とします。最新情報などについては、Apple App Store のプライバシーの詳細ページをご覧ください。

Apple Privacy Manifest ファイルは、SDK のリソース バンドルに含まれています。プライバシー マニフェスト ファイルが含まれていることを確認し、その内容を検査するには、アプリのアーカイブを作成し、そのアーカイブからプライバシー レポートを生成します。

ステップ 4: API キーをプロジェクトに追加する

次の例は、Xcode でプロジェクトに API キーを追加する方法を示しています。

Swift

次のように、API キーを AppDelegate.swift に追加します。

  1. 次の import ステートメントを追加します。
    import GoogleMaps
    import GoogleNavigation
  2. application(_:didFinishLaunchingWithOptions:) に以下を追加します。 メソッド:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

次のように、API キーを AppDelegate.m に追加します。

  1. 次の import ステートメントを追加します。
    @import GoogleMaps;
    @import GoogleNavigation;
  2. application:didFinishLaunchingWithOptions: に以下を追加します。 メソッド:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

ステップ 5: 地図を追加する

このコードは、既存の ViewController にシンプルな地図を追加する方法を示しています。 ナビゲーションの初期設定も 行われています

ナビゲーションを有効にするには、ユーザーが利用規約に同意する必要があります。 できます。ユーザーにプロンプトを表示するには、 GMSNavigationServices.showTermsAndConditionsDialogIfNeeded()、次にチェックボックスをオンにします 利用規約に同意したかどうかを確認しますユーザーが規約を拒否した場合 mapView.isNavigationEnabled = true は無効、mapView.navigator は無効 nil

Swift

import UIKit
import GoogleNavigation

class ViewController: UIViewController {

  var mapView: GMSMapView!
  var locationManager: CLLocationManager!

  override func loadView() {
    locationManager = CLLocationManager()
    locationManager.requestAlwaysAuthorization()

    let options = GMSMapViewOptions()
    options.camera = camera
    options.frame = .zero
    mapView = GMSMapView(options: options)

    // Show the terms and conditions.
    let termsAndConditionsOptions = GMSNavigationTermsAndConditionsOptions(companyName: "Ride Share Co.")

    GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(with: termsAndConditionsOptions) { termsAccepted in
      if termsAccepted {
        // Enable navigation if the user accepts the terms.
        self.mapView.isNavigationEnabled = true
      } else {
        // Handle the case when the user rejects the terms and conditions.
      }
    }

    view = mapView
  }

  // TODO: Add navigation code.

}

Objective-C

#import "ViewController.h"
@import GoogleNavigation;

@interface ViewController ()
@end

@implementation ViewController
GMSMapView *_mapView;
CLLocationManager *_locationManager;

-   (void)loadView {

  _locationManager = [[CLLocationManager alloc] init];
  [_locationManager requestAlwaysAuthorization];

  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.67
                                                          longitude:-122.20
                                                               zoom:14];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.frame = CGRectZero;
  options.camera = camera;
  options.mapID = mapID;
  _mapView = [[GMSMapView alloc] initWithOptions:options];

  // Show the terms and conditions.
  GMSNavigationTermsAndConditionsOptions *termsAndConditionsOptions = [[GMSNavigationTermsAndConditionsOptions alloc] initWithCompanyName:@"Ride Sharing Co."];
  
  [GMSNavigationServices
    showTermsAndConditionsDialogIfNeededWithOptions:termsAndConditionsOptions
    callback:^(BOOL termsAccepted) {
     if (termsAccepted) {
       // Enable navigation if the user accepts the terms.
       _mapView.navigationEnabled = YES;
     } else {
       // Handle the case when the user rejects the terms and conditions.
     }
   }];

  self.view = _mapView;
}

// TODO: Add navigation code.

@end

アプリを実行します。ワシントン州カークランドを中心とする地図が表示されます。

地図が表示されない場合は、次の手順をお試しください。

  • 入力した API キーが正しいことを確認します。
  • Cloud コンソールで NavSDK が有効になっていることを確認します。
  • Nav SDK がインストールされているものの、プロジェクトで Nav SDK API を使用していない場合は、バイナリから削除します。

モビリティ サービスをご利用の場合

モビリティ サービスのお客様の場合は、課金の詳細 参照してください。録画について詳しくは 取引については、以下をご覧ください。 お支払い情報を設定します。 Navigation SDK の実装にトランザクション ID を追加する方法については、以下をご覧ください。 サービスの利用状況をモビリティ トランザクションに関連付ける

次のステップ

API キーと Xcode プロジェクトが用意できたので、アプリを作成して実行できます。 Navigation SDK for iOS には、以下の作業に役立つチュートリアルが用意されています。 始めましょう。詳しくは以下をご覧ください。