Menyiapkan project Xcode

Setelah mengaktifkan penagihan dan membuat kunci API, Anda siap untuk menyiapkan Xcode project yang Anda gunakan untuk mengembangkan aplikasi.

Catatan rilis tersedia untuk setiap data.

Langkah 1: Instal software yang diperlukan

Untuk membuat project menggunakan Navigation SDK for iOS, Anda harus mendownload dan menginstal:

  • Xcode versi 15.0 atau yang lebih baru

Langkah 2: Buat project Xcode dan instal Navigation SDK

Swift Package Manager

Navigation SDK dapat diinstal melalui Swift Package Manager. Untuk menambahkan SDK, pastikan Anda memiliki menghapus semua dependensi Navigation SDK yang ada.

Untuk menambahkan SDK ke project baru atau yang sudah ada, ikuti langkah-langkah berikut:

  1. Buka project atau workspace Xcode, lalu buka File > Menambahkan Dependensi Paket.
  2. Masukkan https://github.com/googlemaps/ios-navigation-sdk sebagai URL, tekan Enter untuk menarik paket, dan klik "{i>Add Package<i}".
  3. Untuk menginstal version tertentu, setel kolom Dependency Rule ke salah satu opsi berbasis versi. Untuk proyek baru, sebaiknya tentukan versi terbaru dan menggunakan "Versi Persis" sebelumnya. Setelah selesai, klik "Add Package".
  4. Dari jendela Choose Package Products, pastikan GoogleNavigation akan ditambahkan ke target main yang Anda tetapkan. Setelah selesai, klik "Add Package".
  5. Untuk memverifikasi penginstalan, buka panel General target Anda. Di Frameworks, Libraries, and Embedded Content, Anda akan melihat paket yang diinstal. Anda juga dapat melihat "{i>Package Dependencies<i}" bagian "Navigator Proyek" untuk memverifikasi paket dan versinya.

Untuk mengupdate package untuk project yang sudah ada, ikuti langkah-langkah berikut:

  1. Jika mengupgrade dari versi yang lebih lama dari 9.0.0, Anda harus menghapus dependensi berikut: GoogleMapsBase, GoogleMapsCore, dan GoogleMapsM4B setelah mengupgrade. Jangan hapus dependensi untuk GoogleMaps. Untuk informasi selengkapnya, lihat Catatan Rilis Versi 9.0.0.

    Dari setelan konfigurasi proyek Xcode Anda, temukan Frameworks, Libraries, dan Konten yang Disematkan. Gunakan tanda minus(-) untuk menghapus framework berikut:

    • GoogleMapsBase (Hanya untuk upgrade dari versi sebelum 9.0.0)
    • GoogleMapsCore (Hanya untuk upgrade dari versi sebelum 9.0.0)
    • GoogleMapsM4B (Hanya untuk upgrade dari versi sebelum 9.0.0)
  2. Dari Xcode, buka "File > Paket > Update Ke Versi Paket Terbaru".
  3. Untuk memverifikasi penginstalan, buka bagian Package Dependencies Project Navigator untuk memverifikasi paket dan versinya.

Untuk menghapus dependensi Navigation SDK yang ada yang ditambahkan menggunakan CocoaPods, ikuti langkah berikut:

  1. Tutup ruang kerja Xcode Anda. Buka terminal dan jalankan perintah berikut:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. Hapus Podfile, Podfile.resolved, dan Xcode workspace jika Anda tidak menggunakannya untuk hal apa pun selain CocoaPods.

Untuk menghapus Navigation SDK for iOS yang diinstal secara manual, ikuti langkah-langkah berikut:
  1. Dari setelan konfigurasi proyek Xcode Anda, temukan Frameworks, Libraries, dan Konten yang Disematkan. Gunakan tanda minus(-) untuk menghapus framework berikut:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  2. Dari direktori level teratas project Xcode Anda, hapus GoogleMaps paket.

CocoaPods

Navigation SDK untuk iOS tersedia sebagai CocoaPods. CocoaPods merupakan pengelola dependensi open source untuk proyek Swift dan Objective-C Cocoa.

Jika Anda belum memiliki alat CocoaPods, instal di macOS dengan menjalankan perintah berikut dari terminal. Untuk mengetahui detailnya, lihat CocoaPods Panduan Memulai.

sudo gem install cocoapods

Membuat Podfile untuk Navigation SDK untuk iOS dan menggunakannya untuk menginstal API dan dependensinya:

  1. Jika Anda belum memiliki proyek Xcode, buat sekarang dan simpan ke komputer lokal Anda. Jika Anda baru mengenal pengembangan iOS:
    1. Membuat project baru.
    2. Pilih iOS > Template aplikasi.
    3. Di layar opsi project:
      1. Masukkan Project Name.
      2. Catat nilai kolom ID paket. Anda dapat menggunakan nilai tersebut untuk membatasi kunci API di bawah.
      3. Tetapkan Interface project ke Storyboard.
      4. Setel Language ke Swift atau Objective-C.
  2. Buat file bernama Podfile dalam direktori project Anda. File ini mendefinisikan dependensi project Anda.
  3. Edit Podfile dan tambahkan dependensi Anda beserta dependensi versi. Berikut ini contoh yang menyertakan dependensi yang Anda butuhkan untuk Navigation SDK untuk iOS: # Referensi pemasangan 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
            
    Pastikan untuk menjalankan pod outdated secara rutin guna mendeteksi yang lebih baru versi. Jika perlu, upgrade ke versi terbaru.
  4. Simpan Podfile.
  5. Buka terminal, lalu buka direktori yang berisi Podfile:

    cd <path-to-project>
  6. Jalankan perintah pod install. Tindakan ini akan menginstal API yang ditentukan dalam Podfile, beserta dependensi apa pun.

    pod install
  7. Tutup Xcode, lalu buka (klik dua kali) file .xcworkspace project Anda untuk meluncurkan Xcode. Mulai saat ini dan seterusnya, Anda harus menggunakan file .xcworkspace untuk membuka project.

Untuk mengupdate API project yang sudah ada, ikuti langkah-langkah berikut:

  1. Buka terminal, lalu buka direktori project yang berisi Podfile.
  2. Jalankan perintah pod update. Tindakan ini akan mengupdate semua API yang ditentukan dalam Podfile ke versi terbaru.

Penginstalan manual

Panduan ini menunjukkan cara menambahkan XCFrameworks yang berisi Navigation SDK for iOS, dan Maps SDK for iOS ke project Anda serta mengonfigurasi setelan build di Xcode. XCFramework adalah paket biner yang dapat Anda gunakan di berbagai platform, termasuk mesin yang menggunakan {i>chipset<i} M1

Ikuti langkah-langkah berikut untuk menginstal XCFrameworks untuk Navigation SDK for iOS, dan Maps SDK for iOS:

  1. Download file resource dan biner SDK berikut:
  2. Luncurkan Xcode dan buka project yang ada, atau buat project baru. Jika Anda baru menggunakan iOS, buat project baru dan pilih Template Aplikasi iOS.
  3. Menghapus semua referensi Maps, Navigasi, dan Tempat yang ada dari project.
  4. Tarik XCFrameworks berikut ke dalam project Anda di bagian Framework, Library, dan Konten Tersemat untuk menginstal Maps dan Navigation SDK (saat diminta, pilih Copy items if needed):
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. Tarik GoogleMaps.bundle dari GoogleMapsResources yang telah Anda download ke direktori level teratas project Xcode Anda. Saat diminta, pastikan opsi Copy items if needed dipilih.
  6. Tarik GoogleNavigation.bundle dari GoogleNavigationResources yang telah Anda download ke direktori level teratas project Xcode Anda. Saat diminta, pastikan Salin item ke folder grup tujuan dipilih.
  7. Pilih proyek Anda dari Navigator Proyek, dan pilih target aplikasi Anda.
  8. Buka tab Build Phases, dan di dalam Tautkan Binary dengan Libraries, tambahkan framework dan library berikut:
    • 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. Pada target aplikasi Anda, pilih tab Kemampuan, aktifkan Mode Latar Belakang, dan aktifkan mode berikut:
    • Audio, AirPlay, dan Picture-in-Picture
    • Pembaruan lokasi
  10. Pilih project Anda, bukan target tertentu, dan buka fungsi Build Setelan kami. Di bagian Other Linker Flags, menambahkan ‑ObjC untuk debug dan release. Jika setelan ini tidak terlihat, ubah filter di Kolom Build Settings dari Basic ke All.
  11. Buka Info.plist dan tambahkan key-value pair berikut:
    • Kunci: NSLocationWhenInUseUsageDescription (Privasi - Deskripsi Lokasi Saat Digunakan Saat Digunakan)
      Nilai: "Aplikasi ini memerlukan izin untuk menggunakan lokasi Anda untuk navigasi belokan demi belokan."
    • Kunci: NSLocationAlwaysAndWhenInUseUsageDescription (Privasi - Deskripsi Lokasi Selalu dan Saat Digunakan Dalam Penggunaan)
      Nilai: "Aplikasi ini memerlukan izin untuk menggunakan lokasi Anda untuk navigasi belokan demi belokan."

Langkah 3: Periksa file Manifes Privasi Apple

Apple mewajibkan detail privasi aplikasi untuk aplikasi di App Store. Kunjungi halaman Detail Privasi Apple App Store untuk pembaruan dan informasi selengkapnya.

File Manifes Privasi Apple disertakan dalam paket resource untuk SDK. Untuk memverifikasi bahwa File Manifes Privasi telah disertakan, dan untuk memeriksa kontennya, buat arsip aplikasi dan buat laporan privasi dari arsip.

Langkah 4: Tambahkan kunci API Anda ke project

Contoh berikut menunjukkan cara menambahkan kunci API ke project Anda di Xcode:

Swift

Tambahkan kunci API ke AppDelegate.swift sebagai berikut:

  1. Tambahkan pernyataan impor berikut:
    import GoogleMaps
    import GoogleNavigation
  2. Tambahkan kode berikut ke application(_:didFinishLaunchingWithOptions:) Anda berikut:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

Tambahkan kunci API ke AppDelegate.m sebagai berikut:

  1. Tambahkan pernyataan impor berikut:
    @import GoogleMaps;
    @import GoogleNavigation;
  2. Tambahkan kode berikut ke application:didFinishLaunchingWithOptions: Anda berikut:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

Langkah 5: Tambahkan peta

Kode ini menunjukkan cara menambahkan peta sederhana ke ViewController yang ada, termasuk beberapa pengaturan awal untuk navigasi.

Sebelum navigasi dapat diaktifkan, pengguna harus menyetujui persyaratan dan kondisi tertentu. Untuk meminta pengguna, panggil GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(), lalu centang ke melihat apakah persyaratan sudah disetujui. Jika pengguna menolak persyaratan, mapView.isNavigationEnabled = true tidak berpengaruh, dan mapView.navigator adalah nol.

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

Jalankan aplikasi Anda. Anda akan melihat peta yang berpusat di Kirkland, Washington.

Jika peta tidak terlihat, coba langkah berikut:

  • Pastikan Anda telah memberikan kunci API yang benar.
  • Pastikan NavSDK telah diaktifkan di Cloud Console.
  • Jika Nav SDK sudah diinstal, tetapi project Anda tidak menggunakan Nav SDK API, hapus Nav SDK dari biner Anda.

Jika Anda adalah pelanggan Mobility Services

Jika Anda adalah pelanggan Mobility Services, pelajari penagihan dalam dokumentasi Mobility. Untuk informasi selengkapnya tentang perekaman transaksi, lihat Menyiapkan penagihan. Untuk mempelajari cara menambahkan ID transaksi ke penerapan Navigation SDK, lihat Kaitkan penggunaan layanan Anda dengan transaksi Mobility.

Langkah berikutnya

Setelah memiliki kunci API dan project Xcode, Anda dapat membuat dan menjalankan aplikasi. Navigation SDK untuk iOS memberikan tutorial yang dapat membantu Anda memulai. Untuk mengetahui detail selengkapnya, lihat: