Xcode projesi oluşturma

Faturalandırmayı etkinleştirip bir API anahtarı oluşturduktan sonra, uygulamanızı geliştirmek için kullandığınız Xcode projesini oluşturmaya hazırsınız demektir.

Her sürüm için sürüm notları mevcuttur.

1. Adım: Gerekli yazılımı yükleyin

iOS için Haritalar SDK'sını kullanarak proje oluşturmak için şunları indirmeniz ve yüklemeniz gerekir:

  • Xcode 15.0 sürümü veya sonraki sürümler

2. Adım: Xcode projesini oluşturun ve iOS için Haritalar SDK'sını yükleyin

Swift Paket Yöneticisi

iOS için Haritalar SDK'sı, Swift Package Manager aracılığıyla yüklenebilir. SDK'yı eklemek istiyorsanız mevcut iOS için Haritalar SDK'sı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-maps-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 penceresinde GoogleMaps'nin (9.0.0'dan önceki sürümler için GoogleMaps, GoogleMapsBase ve GoogleMapsCore'yi doğrulayın) belirlediğiniz main hedefinize 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 iOS bağımlılıkları için Haritalar SDK'sını kaldırmak istiyorsanız ş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.

Manuel olarak yüklenmiş olan mevcut iOS için Haritalar SDK'sını kaldırmak için 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
    • GoogleMapsBase (Yalnızca 9.0.0 sürümünden önceki yüklemeler için)
    • GoogleMapsCore (Yalnızca 9.0.0 sürümünden önceki yüklemeler için)
    • GoogleMapsM4B (Yalnızca 9.0.0 sürümünden önceki yüklemeler için)
  2. Xcode projenizin üst düzey dizininden GoogleMaps paketini kaldırın.

CocoaPods

iOS için Haritalar 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 bakın.

sudo gem install cocoapods

iOS için Haritalar SDK'sı için bir Podfile oluşturun ve API ile bağımlılıklarını yüklemek için bu dosyayı 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 Haritalar SDK'sına yönelik ihtiyacınız olan bağımlılığı içeren bir örneği aşağıda bulabilirsiniz:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '8.4.0'
    end
    
    Her zaman en yeni sürümü kullanmak için daha yeni bir sürüm olduğunu algılamak amacıyla pod outdated uygulamasını düzenli olarak çalıştırdığınızdan emin olun. Gerekiyorsa 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, Podfile içinde belirtilen API'leri ve bu API'lerin sahip olabileceği bağımlılıkları 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ılavuz, iOS için Haritalar SDK'sını içeren XCFrameworks'ü projenize manuel olarak nasıl ekleyeceğinizi ve Xcode'da derleme ayarlarınızı nasıl yapılandıracağınızı gösterir. XCFramework, Apple Silicon kullanan makineler dahil olmak üzere birden fazla platformda kullanabileceğiniz bir ikili programdır.
  1. Aşağıdaki SDK ikili programlarını ve kaynak dosyalarını indirin:
  2. XCFrameworks ve kaynaklara erişmek için dosyaları çıkarın.
  3. 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.
  4. Genel sekmesini açın. Aşağıdaki XCFrameworks'ü projenize Çerçeveler, Kitaplıklar ve Yerleştirilmiş İçerikler bölümünden sürükleyin. Her XCFramework için Do Not Embed'i seçtiğinizden emin olun:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. GoogleMaps.bundle öğesini, indirdiğiniz GoogleMapsResources dosyasından Xcode projenizin üst düzey dizinine kopyalayın. İstendiğinde Öğeleri hedef grubun klasörüne kopyala'yı seçtiğinizden emin olun.
  6. Project Navigator'dan projenizi ve uygulamanızın hedefini seçin.
  7. Uygulamanızın hedefine ait Derleme Aşamaları sekmesini açın. Kitaplıklarla İkili Program arasında bağlantı oluşturma bölümüne aşağıdaki çerçeveleri ve kitaplıkları ekleyin:
    • Accelerate.framework
    • Contacts.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libz.tbd
    • Metal.framework
    • OpenGLES.framework (Yalnızca OpenGL kullanıyorsanız)
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. Belirli bir hedef yerine projenizi seçin ve Derleme Ayarları sekmesini açın. Bağlantı Oluşturma - Genel -> Diğer Bağlayıcı İşaretleri bölümünde, -ObjC öğesini "Hata ayıkla" ve "Serbest bırak" öğelerine ekleyin. Bu ayarlar görünmüyorsa Derleme Ayarları çubuğundaki filtreyi Temel yerine Tümü olarak değiştirin.

  9. iOS XCFramework için Yerler SDK'sını yüklemek amacıyla iOS için Yerler SDK'sını Kullanmaya Başlama bölümüne bakın.

3. 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.

4. Adım: API anahtarınızı projeye ekleyin

API anahtarı alma bölümünde uygulamanız için bir API anahtarı oluşturdunuz. Şimdi bu anahtarı Xcode projenize ekleyin.

Aşağıdaki örneklerde YOUR_API_KEY öğesini kendi API anahtarınızla değiştirin.

bölümünü inceleyin.

konusuna bakın.

Swift

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

  1. Aşağıdaki içe aktarma deyimini ekleyin:
    import GoogleMaps
  2. API anahtarınızı kullanarak application(_:didFinishLaunchingWithOptions:) yönteminize şunu ekleyin:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Places API'yi de kullanıyorsanız anahtarınızı burada gösterildiği gibi tekrar ekleyin:
    GMSPlacesClient.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 deyimini ekleyin:
    @import GoogleMaps;
  2. API anahtarınızı kullanarak application:didFinishLaunchingWithOptions: yönteminize şunu ekleyin:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Places API'yi de kullanıyorsanız anahtarınızı burada gösterildiği gibi tekrar ekleyin:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

5. Adım: Bir harita ekleyin

Swift

/*
 *   Copyright 2020 Google Inc. All rights reserved.
 *
 *
 *   Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 *   file except in compliance with the License. You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software distributed under
 *   the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 *   ANY KIND, either express or implied. See the License for the specific language governing
 *   permissions and limitations under the License.
 */

import UIKit
import GoogleMaps

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        // Create a GMSCameraPosition that tells the map to display the
        // coordinate -33.86,151.20 at zoom level 6.

        let options = GMSMapViewOptions()
        options.camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
        options.frame = self.view.bounds

        let mapView = GMSMapView(options: options)
        self.view.addSubview(mapView)

        // Creates a marker in the center of the map.
        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
        marker.title = "Sydney"
        marker.snippet = "Australia"
        marker.map = mapView
  }
}

Objective-C

/*
*   Copyright 2020 Google Inc. All rights reserved.
*
*
*   Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
*   file except in compliance with the License. You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
*   Unless required by applicable law or agreed to in writing, software distributed under
*   the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
*   ANY KIND, either express or implied. See the License for the specific language governing
*   permissions and limitations under the License.
*/

#import "ViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@interface ViewController()

@end

@implementation ViewController

-   (void)viewDidLoad {
  [super viewDidLoad];
  // Do any additional setup after loading the view.
  // Create a GMSCameraPosition that tells the map to display the
  // coordinate -33.86,151.20 at zoom level 6.
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
  options.frame = self.view.bounds;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

  [self.view addSubview:mapView];

  // Creates a marker in the center of the map.
  GMSMarker *marker = [[GMSMarker alloc] init];
  marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
  marker.title = @"Sydney";
  marker.snippet = @"Australia";
  marker.map = mapView;
}

@end

5. Adım (İsteğe bağlı): API tarafından kullanılan URL şemalarını bildirin

iOS 9 ve Xcode 7 sürümünden itibaren uygulamalar, uygulamanın Info.plist dosyasında şemaları belirterek açmayı istedikleri URL şemalarını bildirebilirler. iOS için Haritalar SDK'sı, kullanıcı haritadaki Google logosunu tıkladığında Google Haritalar mobil uygulamasını açar. Böylece uygulamanız alakalı URL şemalarını beyan edebilir.

iOS için Haritalar SDK'sı tarafından kullanılan URL şemalarını bildirmek için aşağıdaki satırları Info.plist sayfanıza ekleyin:

LSApplicationQueriesSchemes googlechromes comgooglemaps

Aşağıdaki ekran görüntüsünde, Xcode kullanıcı arayüzündeki yapılandırma gösterilmektedir:

Xcode&#39;da LSApplicationQuerySchemes yapılandırması

Yukarıdaki beyan olmadan kullanıcı haritadaki Google logosuna dokunduğunda aşağıdaki hatalar ortaya çıkabilir:

  • -canOpenURL: şu URL için başarısız oldu: "comgooglemaps://" - hata: "Bu uygulamanın, şema comgooglemaps için sorgulama yapmasına izin verilmiyor"
  • -canOpenURL: şu URL için başarısız oldu: "googlechromes://" - hata: "Bu uygulamanın, googlechrome şemalarını sorgulamasına izin verilmiyor"

Bu hataları ortadan kaldırmak için beyanı Info.plist sayfanıza ekleyin.

Sırada ne var?

Artık bir API anahtarınız ve Xcode projeniz var. Şimdi uygulamalar oluşturup çalıştırabilirsiniz. iOS için Gezinme SDK'sı, başlamanıza yardımcı olabilecek birçok eğitici ve örnek uygulama sunar. Ayrıntılı bilgi için: