Projenizi oluşturun

iOS için Navigasyon SDK'sını bir iOS uygulamasına entegre etmek üzere bu kılavuzdaki adımları uygulayın.

Ön koşullar

  • iOS için Navigasyon SDK'sını kullanmaya başlamadan önce, faturalandırma hesabı ve iOS için Haritalar SDK'sı etkin olan bir projeniz olmalıdır. Birden fazla proje sahibi ve faturalandırma yöneticisi oluşturmanızı öneririz. Böylece ekibiniz her zaman bu rollere sahip olur. Daha fazla bilgi edinmek için Google Cloud projenizi oluşturma bölümünü inceleyin.
  • iOS için Navigasyon SDK'sını kullanarak proje oluşturmak istiyorsanız Xcode ihtiyacınız vardır.
  • Gezinme SDK'sı için minimum hedef iOS sürümü 15.0'dır.

1. adım: SDK'yı yükleyin

Swift Paket Yöneticisi

Gezinme SDK'sı, Swift Package Manager aracılığıyla yüklenebilir. SDK'yı eklemek için mevcut Gezinme SDK'sı bağımlılıklarını kaldırdığınızdan emin olun.

SDK'yı yeni veya mevcut bir projeye eklemek için aşağıdaki adımları uygulayın:

  1. Xcode project veya workspace dosyanızı açın, ardından Dosya > Paket Bağımlılıkları Ekle'ye gidin.
  2. URL olarak https://github.com/googlemaps/ios-navigation-sdk adresini girin, paketi almak için Enter'a basın ve "Paket Ekle"yi tıklayın.
  3. Belirli bir version yüklemek için Bağımlılık Kuralı alanını sürüm tabanlı seçeneklerden birine ayarlayın. Yeni projeler için en son sürümü belirtmenizi ve "Tam Sürüm" seçeneğini kullanmanızı öneririz. İşlem tamamlandığında "Paket Ekle"yi tıklayın.
  4. Paket Ürünlerini Seçin penceresinden GoogleNavigation ürününün, belirlediğiniz main hedefine ekleneceğini doğrulayın. İşlem tamamlandığında "Paket Ekle"yi tıklayın.
  5. Yüklemenizi doğrulamak için hedefinizin General bölmesine gidin. Çerçeveler, Kitaplıklar ve Yerleştirilmiş İçerikler bölümünde yüklü paketleri göreceksiniz. Paketi ve sürümünü doğrulamak için "Project Navigator"ın "Paket Bağımlılıkları" bölümünü de görüntüleyebilirsiniz.

Mevcut bir projenin package öğesini güncellemek için şu adımları izleyin:

  1. 9.0.0'dan önceki bir sürümden yeni sürüme geçiyorsanız şu bağımlılıkları kaldırmanız gerekir: yeni sürüme geçtikten sonra GoogleMapsBase, GoogleMapsCore ve GoogleMapsM4B. GoogleMaps için bağımlılığı kaldırmayın. Daha fazla bilgi için 9.0.0 Sürüm Notları'na bakın.

    Xcode proje yapılandırma ayarlarınızdan Çerçeveler, Kitaplıklar ve Yerleştirilmiş İçerikler'i bulun. Aşağıdaki çerçeveyi kaldırmak için eksi işaretini(-) kullanın:

    • GoogleMapsBase (Yalnızca 9.0.0'dan önceki sürümlerden yapılan yükseltmeler için)
    • GoogleMapsCore (Yalnızca 9.0.0'dan önceki sürümlerden yapılan yükseltmeler için)
    • GoogleMapsM4B (Yalnızca 9.0.0'dan önceki sürümlerden yapılan yükseltmeler için)
  2. Xcode'dan "File > Packages > Update to En Son Paket Sürümlerine Güncelle"ye gidin.
  3. Yüklemenizi doğrulamak için Project Navigator'ın Paket Bağımlılıkları bölümüne giderek paketi ve sürümünü doğrulayın.

CocoaPods kullanılarak eklenen mevcut Gezinme SDK'sı bağımlılıklarını kaldırmak için şu adımları uygulayın:

  1. Xcode çalışma alanınızı kapatın. Terminali açın ve aşağıdaki komutu yürütün:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. Podfile, Podfile.resolved ve workspace Xcode'larını CocoaPods dışında bir amaçla kullanmıyorsanız kaldırın.

iOS için manuel olarak yüklenmiş mevcut Navigasyon SDK'sını kaldırmak isterseniz aşağıdaki adımları uygulayın:
  1. Xcode proje yapılandırma ayarlarınızdan Çerçeveler, Kitaplıklar ve Yerleştirilmiş İçerikler'i bulun. Aşağıdaki çerçeveyi kaldırmak için eksi işaretini(-) kullanın:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  2. Xcode projenizin üst düzey dizininden GoogleMaps paketini kaldırın.

CocoaPods

iOS için Navigasyon SDK'sı, CocoaPods kapsülü olarak sunulur. CocoaPods, Swift ve Objective-C Cocoa projeleri için açık kaynaklı bir bağımlılık yöneticisidir.

CocoaPods aracınız yoksa terminalden aşağıdaki komutu çalıştırarak bu aracı macOS'e yükleyin. Ayrıntılı bilgi için CocoaPods Başlangıç kılavuzuna göz atın.

sudo gem install cocoapods

iOS için Navigasyon SDK'sı için Podfile oluşturun ve API ile bağımlılıklarını yüklemek için bunu kullanın:

  1. Henüz bir Xcode projeniz yoksa şimdi bir proje oluşturun ve yerel makinenize kaydedin. iOS'i geliştirme konusunda yeniyseniz:
    1. Yeni proje oluşturun.
    2. iOS > Uygulama şablonunu seçin.
    3. Proje seçenekleri ekranında:
      1. Proje Adı'nı girin.
      2. Paket tanımlayıcısı alanının değerini kaydedin. Aşağıdaki API anahtarınızı kısıtlamak için bu değeri kullanabilirsiniz.
      3. Interface projesini Resimli Taslak olarak ayarlayın.
      4. Dil'i Swift veya Objective-C olarak ayarlayın.
  2. Proje dizininizde Podfile adlı bir dosya oluşturun. Bu dosya projenizin bağımlılıklarını tanımlar.
  3. Podfile öğesini düzenleyin ve versions birlikte bağımlılıklarınızı ekleyin. iOS için Gezinme SDK'sı için ihtiyacınız olan bağımlılığı içeren bir örneği burada bulabilirsiniz: # Cocoapods yükleme referansı numarası
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '9.0.0'
    end
            
    Yeni sürümleri algılamak için pod outdated uygulamasını düzenli olarak çalıştırdığınızdan emin olun. Gerekirse en son sürüme geçin.
  4. Podfile dosyasını kaydedin.
  5. Bir terminal penceresi açın ve Podfile öğesini içeren dizine gidin:

    cd <path-to-project>
  6. pod install komutunu çalıştırın. Bu işlem, bağımlılıklarla birlikte Podfile içinde belirtilen API'leri yükler.

    pod install
  7. Xcode'u kapatın ve ardından Xcode'u başlatmak için projenizin .xcworkspace dosyasını açın (çift tıklayın). Bu andan itibaren projeyi açmak için .xcworkspace dosyasını kullanmanız gerekir.

Mevcut bir projenin API'sini güncellemek için şu adımları izleyin:

  1. Bir terminal penceresi açın ve Podfile öğesini içeren proje dizinine gidin.
  2. pod update komutunu çalıştırın. Bu işlem, Podfile içinde belirtilen tüm API'leri en son sürüme günceller.

Manuel yükleme

Bu kılavuzda, iOS için Navigasyon SDK'sını içeren XCFrameworks ve iOS için Haritalar SDK'sını projenize manuel olarak nasıl ekleyeceğiniz ve Xcode'da derleme ayarlarınızı nasıl yapılandıracağınız gösterilmektedir. XCFramework, M1 yonga seti kullanan makineler dahil olmak üzere birden fazla platformda kullanabileceğiniz bir ikili programdır.

iOS için Navigasyon SDK'sı ve iOS için Haritalar SDK'sı için XCFrameworks'ü yüklemek üzere şu adımları uygulayın:

  1. Aşağıdaki SDK ikili programlarını ve kaynak dosyalarını indirin:
  2. Xcode'u başlatın ve mevcut bir projeyi açın veya yeni proje oluşturun. iOS kullanmaya yeni başladıysanız yeni proje oluşturup iOS App şablonunu seçin.
  3. Projeden mevcut tüm Haritalar, Navigasyon ve Yerler referanslarını kaldırın.
  4. Haritalar ve Navigasyon SDK'larını yüklemek için aşağıdaki XCFrameworks'ü projenize Çerçeveler, Kitaplıklar ve Yerleştirilmiş İçerik'in altına sürükleyin (istendiğinde, Gerekirse öğeleri kopyala'yı seçin):
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. GoogleMaps.bundle öğesini, indirdiğiniz GoogleMapsResources'tan Xcode projenizin en üst düzey dizinine sürükleyin. İstendiğinde Gerekiyorsa öğeleri kopyala'nın seçili olduğundan emin olun.
  6. GoogleNavigation.bundle öğesini, indirdiğiniz GoogleNavigationResources'ndan Xcode projenizin en üst düzey dizinine sürükleyin. İstendiğinde Öğeleri hedef grubun klasörüne kopyala'nın seçili olduğundan emin olun.
  7. Project Navigator'dan projenizi ve uygulamanızın hedefini seçin.
  8. Derleme Aşamaları sekmesini açın ve İkili Program ile Kitaplıkları Bağla bölümüne aşağıdaki çerçeveleri ve kitaplıkları ekleyin:
    • 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. Uygulamanızın hedefinde Özellikler sekmesini seçin, Arka Plan Modları'nı açın ve aşağıdaki modları etkinleştirin:
    • Ses, AirPlay ve Pencere İçinde Pencere
    • Konum güncellemeleri
  10. Belirli bir hedef yerine projenizi seçin ve Derleme Ayarları sekmesini açın. Diğer Bağlayıcı İşaretleri bölümünde hem hata ayıklama hem de yayınlama için ‑ObjC ekleyin. Bu ayarlar görünmüyorsa Derleme Ayarları çubuğundaki filtreyi Temel yerine Tümü olarak değiştirin.
  11. Info.plist sayfasını açın ve aşağıdaki anahtar/değer çiftlerini ekleyin:
    • Anahtar: NSLocationWhenInUseUsageDescription (Gizlilik - Kullanımda Olduğunda Konum Kullanım Açıklaması)
      Değer: "Bu uygulamanın adım adım navigasyon için konumunuzu kullanması için izin gerekiyor."
    • Anahtar: NSLocationAlwaysAndWhenInUseUsageDescription (Gizlilik - Konum Her Zaman ve Kullanımda Kullanım Açıklaması)
      Değer: "Bu uygulamanın adım adım navigasyon için konumunuzu kullanması için izin gerekiyor."

2. Adım: Apple Gizlilik Manifest dosyasını inceleyin

Apple, App Store'daki uygulamalar için uygulama gizlilik ayrıntılarını zorunlu kılar. Güncellemeler ve daha fazla bilgi için Apple App Store Gizlilik Ayrıntıları sayfasını ziyaret edin.

Apple Gizlilik Manifest dosyası, SDK'nın kaynak paketinde yer almaktadır. Gizlilik Manifest Dosyasının dahil edildiğini doğrulamak ve içeriğini incelemek için uygulamanızın arşivini oluşturup arşivden bir gizlilik raporu oluşturun.

3. Adım: Projenize bir API anahtarı ekleyin

Aşağıdaki örneklerde, Xcode'da projenize API anahtarının nasıl ekleneceği gösterilmiştir:

Swift

API anahtarınızı AppDelegate.swift cihazınıza aşağıdaki şekilde ekleyin:

  1. Aşağıdaki import (içe aktarma) ifadelerini ekleyin:
    import GoogleMaps
    import GoogleNavigation
  2. application(_:didFinishLaunchingWithOptions:) yönteminize aşağıdakileri ekleyin:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

API anahtarınızı AppDelegate.m cihazınıza aşağıdaki şekilde ekleyin:

  1. Aşağıdaki import (içe aktarma) ifadelerini ekleyin:
    @import GoogleMaps;
    @import GoogleNavigation;
  2. application:didFinishLaunchingWithOptions: yönteminize aşağıdakileri ekleyin:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

4. Adım: Bir harita ekleyin

Bu kod, navigasyon için bazı başlangıç ayarları da dahil olmak üzere mevcut bir ViewController öğesine basit bir haritanın nasıl ekleneceğini gösterir.

Navigasyonun etkinleştirilebilmesi için kullanıcının şartlar ve koşulları kabul etmesi gerekir. Kullanıcıya istemde bulunmak için GMSNavigationServices.showTermsAndConditionsDialogIfNeeded() numaralı telefonu arayın ve şartların kabul edilip edilmediğini kontrol edin. Kullanıcı şartları reddederse mapView.isNavigationEnabled = true herhangi bir etkisi olmaz ve mapView.navigator geçersiz olur.

Swift

import UIKit
import GoogleNavigation

class ViewController: UIViewController {

  var mapView: GMSMapView!
  var locationManager: CLLocationManager!

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

    let camera = GMSCameraPosition.camera(withLatitude: 47.67, longitude: -122.20, zoom: 14)
    mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)

    // Show the terms and conditions.
    let companyName = "Ride Sharing Co."
    GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(
      withCompanyName: companyName) { 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];
  _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];

  // Show the terms and conditions.
  NSString *companyName = @"Ride Sharing Co.";
  [GMSNavigationServices
    showTermsAndConditionsDialogIfNeededWithCompanyName:companyName
    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

Uygulamanızı çalıştırın. Kirkland, Washington'ın merkezinde bir harita göreceksiniz. Harita görünmüyorsa doğru API anahtarını sağladığınızı onaylayın.

Mobilite Hizmetleri müşterisiyseniz

Mobilite Hizmetleri müşterisiyseniz Mobilite belgelerinde faturalandırma hakkında bilgi edinebilirsiniz. İşlemleri kaydetme hakkında daha fazla bilgi için Faturalandırma ayarlarını yapma sayfasına göz atın. Gezinme SDK'sı uygulamanıza nasıl işlem kimliği ekleyeceğinizi öğrenmek için Hizmet kullanımınızı Mobilite işlemleriyle ilişkilendirme bölümüne bakın.