Projenizi oluşturun

iOS için Gezinme SDK'sini bir iOS uygulamasına entegre etmek üzere bu kılavuzu izleyin.

Ön koşullar

  • iOS için Gezinme SDK'sını kullanmaya başlamadan önce, faturalandırma hesabı içeren ve iOS için Haritalar SDK'sı etkinleştirilmiş bir projeye ihtiyacınız vardır. Birden fazla proje sahibi ve faturalandırma yöneticisi oluşturmanızı öneririz. Böylece ekibinizde bu rollere sahip birilerinin olur. Daha fazla bilgi edinmek için Google Cloud projenizi oluşturma bölümünü inceleyin.
  • iOS için Gezinme SDK'sını kullanarak proje oluşturmak üzere Xcode'un 15.0 veya daha yeni bir sürümüne ihtiyacınız vardır.
  • Gezinme SDK'sı için minimum hedef iOS sürümü 14.0'dır.

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 şu adımları uygulayın:

  1. Xcode project veya workspace cihazınızı açın, ardından File > Add Package Dependencies'e (Dosya > Paket Bağımlılıkları Ekle) gidin.
  2. URL olarak https://github.com/googlemaps/ios-navigation-sdk girin, paketi çekmek için Enter tuşuna 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 penceresinde, 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şik İçerik'te yüklü paketleri görürsünüz. Paketi ve sürümünü doğrulamak için "Project Navigator"daki "Paket Bağımlılıkları" bölümüne de bakabilirsiniz.

Mevcut bir proje için package öğesini güncellemek üzere şu adımları uygulayın:

  1. Xcode'dan "Dosya > Paketler > En Son Paket Sürümlerine Güncelle"ye gidin.
  2. 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 Navigation SDK 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 Xcode workspace öğelerini CocoaPods dışında bir şey için kullanmıyorsanız kaldırın.

Manuel olarak yüklenmiş mevcut iOS için Gezinme SDK'sını kaldırmak üzere şu adımları uygulayın:
  1. Xcode proje yapılandırma ayarlarınızdan Frameworks, Libraries ve Embedded Content'i bulun. Eksi işaretini(-) kullanarak aşağıdaki çerçeveyi kaldırın:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  2. Xcode projenizin en üst düzey dizininden GoogleMaps paketini kaldırın.

CocoaPods

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

Halihazırda CocoaPods aracına sahip değilseniz terminalden aşağıdaki komutu çalıştırarak macOS'e yükleyin. Ayrıntılı bilgi için CocoaPods Başlangıç Kılavuzu'na göz atın.

sudo gem install cocoapods

iOS için Navigation SDK'sına yönelik bir Podfile oluşturun. Bu SDK'yı kullanarak API'yi ve bağımlılıklarını yükleyin:

  1. Henüz bir Xcode projeniz yoksa hemen bir proje oluşturun ve yerel makinenize kaydedin. iOS'te uygulama 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. Grup 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. Projenin Arayüz'ünü 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 bağımlılıklarınızı versions birlikte ekleyin. iOS için Gezinme SDK'sı için ihtiyacınız olan bağımlılığı içeren bir örneği aşağıda bulabilirsiniz: # Cocoapods yükleme referansı #
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '14.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '5.3.1'
    end
            
    Daha yeni sürümleri algılamak için pod outdated politikası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 öğelerini içeren dizine gidin:

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

    pod install
  7. Xcode'u kapatın ve Xcode'u başlatmak için projenizin .xcworkspace dosyasını açın (çift tıklayın). Bundan sonra, projeyi açmak için .xcworkspace dosyasını kullanmanız gerekir.

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

  1. Bir terminal penceresi açıp 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 Gezinme SDK'sını içeren XCFrameworks ve iOS için Haritalar SDK'sı öğesini 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 setini kullanan makineler de dahil olmak üzere çeşitli platformlarda kullanabileceğiniz bir ikili program paketidir.

iOS için Gezinme SDK'sı için XCFrameworks ve iOS için Haritalar SDK'sını yüklemek üzere aşağıdaki adımları izleyin:

  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 bir proje oluşturun. iOS'te yeniyseniz yeni bir proje oluşturun ve iOS uygulama şablonunu seçin.
  3. Projeden var olan tüm Haritalar, Navigasyon ve Yerler referanslarını kaldırın.
  4. Hem Haritalar hem de Gezinme SDK'larını yüklemek için aşağıdaki XCFrameworks'ü Çerçeveler, Kitaplıklar ve Yerleşik İçerik altındaki projenize sürükleyin (istendiğinde, Gerekirse öğeleri kopyala'yı seçin):
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. GoogleMaps.bundle dosyasını, indirdiğiniz GoogleMapsResources'dan Xcode projenizin en üst düzey dizinine sürükleyin. İstendiğinde, Gerekiyorsa öğeleri kopyala'nın seçili olduğundan emin olun.
  6. İndirdiğiniz GoogleNavigation.bundle öğesini GoogleNavigationResources bölümünden 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 seçin ve uygulamanızın hedefini belirleyin.
  8. Derleme Aşamaları sekmesini açın ve İkili Programı Kitaplıklara Bağla bölümünde 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 Build Settings (Derleme Ayarları) sekmesini açın. Diğer Bağlayıcı İşaretleri bölümünde hem debug hem de release için ‑ObjC ekleyin. Bu ayarlar görünmüyorsa, Derleme Ayarları çubuğundaki Temel olan filtreyi Tümü olarak değiştirin.
  11. Info.plist dosyasını açın ve aşağıdaki anahtar/değer çiftlerini ekleyin:
    • Anahtar: NSLocationWhenInUseUsageDescription (Gizlilik - Kullanım Sırasında Konum 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 Açıklaması)
      Değer: "Bu uygulamanın adım adım navigasyon için konumunuzu kullanması için izin gerekiyor."

Apple Gizlilik Manifest Dosyası Ekle

  1. iOS için Gezinme SDK'si için Gizlilik Manifest paketini indirin: GoogleNavigationPrivacy
  2. GoogleNavigationPrivacy.bundle dosyasına erişmek için dosyayı çıkarın.
  3. Bu yöntemlerden birini kullanarak Xcode Proje gezginine GoogleNavigationPrivacy.bundle ekleyin. Uygulamanızın hedefi için "Hedeflere ekle" kutusunun işaretlendiğinden emin olun. Eklendikten sonra PrivacyInfo dosyası Proje gezgininde görünür ve değerleri inceleyebilirsiniz.
  4. Xcode Gizlilik Bilgisi Ekran Görüntüsü
  5. Uygulamanızın bir arşivini oluşturup arşivden bir gizlilik raporu oluşturarak gizlilik manifestinin eklendiğini doğrulayın.

Projenize bir API anahtarı ekleyin

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

Swift

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

  1. Aşağıdaki 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 içe aktarma ifadelerini ekleyin:
    @import GoogleMaps;
    @import GoogleNavigation;
  2. application:didFinishLaunchingWithOptions: yönteminize aşağıdakileri ekleyin:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

Harita ekleyin

Bu kod, navigasyon için bazı başlangıç ayarlarıyla birlikte mevcut bir ViewController öğesine basit bir haritanın nasıl ekleneceğini göstermektedir.

Navigasyonun etkinleştirilebilmesi için önce kullanıcının şartlar ve koşulları kabul etmesi gerekir. Kullanıcıya istem göndermek 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. Merkezde Kirkland, Washington'ı taşıyan 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 belgelerinden faturalandırma hakkında bilgi edinebilirsiniz. İşlemleri kaydetme hakkında daha fazla bilgi için Faturalandırma ayarlarını yapma bölümüne bakın. Gezinme SDK'sı uygulamanıza işlem kimliklerini nasıl ekleyeceğinizi öğrenmek için Hizmet kullanımınızı Mobilite işlemleriyle ilişkilendirme bölümüne bakın.