Xcode projesi oluşturma

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

iOS için Yerler SDK'sını indirmek, kitaplığı ve bağımlılarını uygulamanıza eklemek ve ücretsiz bir API anahtarı almak için bu kılavuzdaki adımları uygulayın.

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

1. Adım: Xcode'un en son sürümünü edinin

iOS için Yerler SDK'sını kullanarak proje oluşturmak üzere şunlar gerekir:

  1. Xcode sürüm 13.0 veya sonraki sürümler.
  2. CocoaPods veya Carthage.

2. Adım: SDK'yı yükleyin

API'yi yeni bir projeye yüklemek için aşağıdaki adımları uygulayın:

CocoaPods kullan

iOS için Yerler SDK'sı, tüm yerlerin işlevlerini içeren CocoaPod kapsülü olan GooglePlaces şeklinde kullanılabilir.

CocoaPods, Swift ve Objective-C Cocoa projelerinin açık kaynak bağımlılık yöneticisidir. Henüz CocoaPods aracınız yoksa terminalden aşağıdaki komutu çalıştırarak macOS'e yükleyin. Ayrıntılı bilgi için CocoaPods Başlangıç Kılavuzu'na bakın.

sudo gem install cocoapods

iOS için Yerler SDK'sı için Podfile oluşturun ve SDK'yı ve bağımlılarını yüklemek için kullanın:

  1. Henüz Xcode projeniz yoksa hemen bir proje oluşturun ve yerel makinenize kaydedin. iOS geliştirme işlemini yeni kullanmaya başladıysanız yeni bir proje oluşturun ve iOS Uygulama şablonunu seçin.
  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ı sürümleriyle ekleyin. Uygulama hedefinizin adını ve GooglePlaces kapsülünün adını belirten bir örneği burada bulabilirsiniz:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '13.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GooglePlaces', '7.2.0'
    end
    Her zaman en yeni sürümü kullandığınızdan emin olmak için pod outdated uygulamasını düzenli olarak çalıştırdığınızdan emin olun.
  4. Podfile kaydedin.
  5. Bir terminal açıp Podfile öğesini içeren dizine gidin:

    cd <path-to-project>
  6. pod install komutunu çalıştırın. Bu işlem, Podfile öğesinde belirtilen API'leri ve sahip olabilecekleri bağımlıları yükleyecek.

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

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

  1. Bir terminal penceresi açın ve Podfile 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.

Carthage'ı kullan

iOS için Places SDK'sı, Swift ve Objective-C Cocoa projelerine yönelik basit ve merkezileştirilmiş bir bağımlılık yöneticisi olan Carthage ile kullanılabilir.

  1. Carthage'ı yükle. Birkaç yöntem vardır. Bu nedenle, tam adımlar için Carthage README dosyasına bakın.
  2. Henüz Xcode projeniz yoksa hemen bir proje oluşturun ve yerel makinenize kaydedin. iOS geliştirme işlemini yeni kullanmaya başladıysanız yeni bir proje oluşturun ve iOS Uygulama şablonunu seçin.
  3. Proje dizininizde Cartfile adlı bir dosya oluşturun. Bu dosya, projenizin bağımlılıklarını tanımlar.
  4. Cartfile öğesini düzenleyin ve bağımlılıklarını sürümleriyle birlikte ekleyin:
     binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
    Her zaman en son sürümü kullandığınızdan emin olmak için düzenli olarak carthage outdated çalıştırdığınızdan emin olun.
  5. Cartfile kaydedin.
  6. Bir terminal penceresinde Cartfile:
    cd <path-to-project>
    değerini içeren dizine gidin
  7. carthage update komutunu çalıştırın. Bu işlem, Cartfile öğesinde belirtilen API'leri ve sahip olabilecekleri bağımlıları yükleyecek.
  8. Finder'da, proje dizininizde, Carthage/Build/iOS altındaki indirilen çerçeve dosyalarına gidin.
  9. Aşağıdaki paketleri projenize sürükleyin (istendiğinde Öğeleri gerekirse kopyalayın'ı seçin):
    • GooglePlaces-5.x.x/Frameworks/GooglePlaces.framework
  10. Projenizde GooglePlaces.framework simgesini sağ tıklayın ve Finder'da Göster'i seçin.
  11. Resources klasöründen GooglePlaces.bundle öğesini projenize sürükleyin. Sizden istendiğinde, Öğeleri hedef gruba kopyala<#39;s klasörünün seçili seçili olmadığından emin olun.
  12. Project Navigator uygulamasından projenizi ve uygulamanızın hedefini seçin.
  13. Derleme Aşamaları sekmesini açın ve İkili Kitaplıkları Kitaplıklara Bağla bölümüne aşağıdaki çerçeveleri ve kitaplıkları ekleyin:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  14. Belirli bir hedef yerine projenizi seçin ve Derleme Ayarları sekmesini açın.

  15. Diğer Bağlayıcı İşaretleri bölümüne -ObjC ekleyin. Bu ayarlar görünmüyorsa Oluşturma Ayarları çubuğundaki Temel filtresini Tümü olarak değiştirin.

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

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

Manuel olarak yükleme

Bu kılavuzda projenize manuel olarak GooglePlaces çerçevesinin nasıl ekleneceği ve Xcode'da derleme ayarlarınızın nasıl yapılandırılacağı gösterilmektedir.

  1. SDK kaynak dosyalarını indirin: GooglePlaces-7.2.0
  2. Kaynak dosyaların paketini açın.
  3. Xcode'u başlatın ve mevcut bir projeyi açın ya da yeni bir proje oluşturun. iOS geliştirmesini kullanmaya yeni başladıysanız yeni bir proje oluşturun ve iOS App şablonunu seçin.
  4. Projenizden önceki sürümlerden herhangi bir Haritalar paketini kaldırın.
  5. Aşağıdaki paketleri projenize sürükleyin (istendiğinde Öğeleri gerekirse kopyalayın'ı seçin):
    • GooglePlaces-5.x.x/Frameworks/GooglePlaces.framework
  6. Projenizde GooglePlaces.framework simgesini sağ tıklayın ve Finder'da Göster'i seçin.
  7. Resources klasöründen GooglePlaces.bundle öğesini projenize sürükleyin. Sizden istendiğinde, Öğeleri hedef gruba kopyala<#39;s klasörünün seçili seçili olmadığından emin olun.
  8. Project Navigator uygulamasından projenizi ve uygulamanızın hedefini seçin.
  9. Derleme Aşamaları sekmesini açın ve İkili Kitaplıkları Kitaplıklara Bağla bölümüne aşağıdaki çerçeveleri ve kitaplıkları ekleyin:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  10. Belirli bir hedef yerine projenizi seçin ve Derleme Ayarları sekmesini açın.

  11. Diğer Bağlayıcı İşaretleri bölümüne -ObjC ekleyin. Bu ayarlar görünmüyorsa Oluşturma Ayarları çubuğundaki Temel filtresini Tümü olarak değiştirin.

XCFramework'ü yükleme

XCFramework, M1 çip setini kullanan makineler de dahil olmak üzere birden çok platformda (iOS için Yerler SDK'sını yüklemek üzere) kullanabileceğiniz ikili bir pakettir. Bu kılavuzda, iOS için Yerler SDK'sını içeren XCFramework'ün projenize nasıl ekleneceği ve derleme ayarlarınızın Xcode'da nasıl yapılandırılacağı gösterilmektedir.

Kartvizitli

iOS için Places SDK'sı, Swift ve Objective-C Cocoa projelerine yönelik basit ve merkezileştirilmiş bir bağımlılık yöneticisi olan Carthage ile kullanılabilir.

  1. Carthage'ı yükle. Birkaç yöntem vardır. Bu nedenle, tam adımlar için Carthage README dosyasına bakın.
  2. Henüz Xcode projeniz yoksa hemen bir proje oluşturun ve yerel makinenize kaydedin. iOS geliştirme işlemini yeni kullanmaya başladıysanız yeni bir proje oluşturun ve iOS Uygulama şablonunu seçin.
  3. Proje dizininizde Cartfile adlı bir dosya oluşturun. Bu dosya, projenizin bağımlılıklarını tanımlar.
  4. Cartfile öğesini düzenleyin ve bağımlılıklarını sürümleriyle ekleyin:

    binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
  5. Cartfile kaydedin.
  6. Bir terminal penceresinde şu dizini içeren dizine gidin: Cartfile

    cd <path-to-project>
  7. carthage update komutunu çalıştırın. Bu işlem, Cartfile öğesinde belirtilen API'leri ve sahip olabilecekleri bağımlıları yükleyecek.
  8. Finder'da, proje dizininizde Carthage/Build altındaki indirilen çerçeve dosyalarına gidin.
  9. Aşağıdaki XCFramework'ü projenize Çerçeveler, Kitaplıklar ve Yerleştirilmiş İçerik bölümüne sürükleyin. Yerleştirme'yi seçtiğinizden emin olun:
    • GooglePlaces-x.x.x/GooglePlaces.xcframework
  10. Projenizde GooglePlaces.xcframework simgesini sağ tıklayın ve Finder'da Göster'i seçin.
  11. ios-arm64/GooglePlaces.framework/Resources klasöründen GooglePlaces.bundle değerini, Xcode projenizin en üst düzey dizinine sürükleyin. İstendiğinde, Öğeleri hedef gruba kopyala klasörüne seç'in seçilmediğinden emin olun.
  12. Project Navigator uygulamasından projenizi ve uygulamanızın hedefini seçin.
  13. Derleme Aşamaları sekmesini açın ve İkili Kitaplıkları Bağlayın bölümüne giderek aşağıdaki çerçeveleri ve kitaplıkları ekleyin:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  14. Belirli bir hedef yerine projenizi seçin ve Derleme Ayarları sekmesini açın.

  15. Diğer Bağlayıcı İşaretleri bölümüne -ObjC ekleyin. Bu ayarlar görünmüyorsa Oluşturma Ayarları çubuğundaki Temel filtresini Tümü olarak değiştirin.

Manuel Olarak

Bu kılavuzda, iOS için Haritalar SDK'sını manuel olarak projenize nasıl ekleyeceğiniz ve Xcode'da derleme ayarlarınızı nasıl yapılandıracağınız gösterilmektedir.

  1. SDK kaynak dosyalarını indirin: GooglePlaces-7.2.0-beta-xcframework.
  2. Kaynak dosyaların paketini açın.
  3. Xcode'u başlatın ve mevcut bir projeyi açın ya da yeni bir proje oluşturun. iOS'te yeniyseniz yeni bir proje oluşturun ve iOS Uygulama şablonunu seçin.
  4. Aşağıdaki XCFramework'ü projenize Çerçeveler, Kitaplıklar ve Yerleştirilmiş İçerik bölümüne sürükleyin. Yerleştirme'yi seçtiğinizden emin olun:
    • GooglePlaces-x.x.x/GooglePlaces.xcframework
  5. Projenizde GooglePlaces.xcframework simgesini sağ tıklayın ve Finder'da Göster'i seçin.
  6. ios-arm64/GooglePlaces.framework/Resources klasöründen GooglePlaces.bundle değerini, Xcode projenizin en üst düzey dizinine sürükleyin. İstendiğinde, Öğeleri hedef gruba kopyala klasörüne seç'in seçilmediğinden emin olun.
  7. Project Navigator uygulamasından projenizi ve uygulamanızın hedefini seçin.
  8. Derleme Aşamaları sekmesini açın ve İkili Kitaplıkları Bağlayın bölümüne giderek aşağıdaki çerçeveleri ve kitaplıkları ekleyin:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  9. Belirli bir hedef yerine projenizi seçin ve Derleme Ayarları sekmesini açın.

  10. Diğer Bağlayıcı İşaretleri bölümüne -ObjC ekleyin. Bu ayarlar görünmüyorsa Oluşturma Ayarları çubuğundaki Temel filtresini Tümü olarak değiştirin.

3. Adım: API anahtarını uygulamanıza ekleyin

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

Swift

API anahtarınızı AppDelegate.swift cihazınıza şu şekilde ekleyin:

  • Aşağıdaki içe aktarma ifadesini ekleyin:
    import GooglePlaces
  • Aşağıdakileri application(_:didFinishLaunchingWithOptions:) yönteminize ekleyerek API_ANAHTARINIZI API API'nizle değiştirin:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

API anahtarınızı AppDelegate.m cihazınıza şu şekilde ekleyin:

  • Aşağıdaki içe aktarma ifadesini ekleyin:
    @import GooglePlaces;
  • Aşağıdakileri application:didFinishLaunchingWithOptions: yönteminize ekleyerek API_ANAHTARINIZI API API'nizle değiştirin:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

4. Adım: Kod yazmaya başlayın

Aşağıdaki kod örnekleri, mevcut yeri nasıl alacağınızı gösterir.

Swift

import GooglePlaces
import UIKit

class GetStartedViewController : UIViewController {

  // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables.
  @IBOutlet private var nameLabel: UILabel!
  @IBOutlet private var addressLabel: UILabel!

  private var placesClient: GMSPlacesClient!

  override func viewDidLoad() {
    super.viewDidLoad()
    placesClient = GMSPlacesClient.shared()
  }

  // Add a UIButton in Interface Builder, and connect the action to this function.
  @IBAction func getCurrentPlace(_ sender: UIButton) {
    let placeFields: GMSPlaceField = [.name, .formattedAddress]
    placesClient.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: placeFields) { [weak self] (placeLikelihoods, error) in
      guard let strongSelf = self else {
        return
      }

      guard error == nil else {
        print("Current place error: \(error?.localizedDescription ?? "")")
        return
      }

      guard let place = placeLikelihoods?.first?.place else {
        strongSelf.nameLabel.text = "No current place"
        strongSelf.addressLabel.text = ""
        return
      }

      strongSelf.nameLabel.text = place.name
      strongSelf.addressLabel.text = place.formattedAddress
    }
  }
}
      

Objective-C

#import "GetStartedViewController.h"
@import GooglePlaces;

@interface GetStartedViewController ()
// Add a pair of UILabels in Interface Builder and connect the outlets to these variables
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *addressLabel;
@end

@implementation GetStartedViewController {
  GMSPlacesClient *_placesClient;
}

- (void)viewDidLoad {
  [super viewDidLoad];
  _placesClient = [GMSPlacesClient sharedClient];
}

// Add a pair of UILabels in Interface Builder and connect the outlets to these variables.
- (IBAction)getCurrentPlace:(UIButton *)sender {
  GMSPlaceField placeFields = (GMSPlaceFieldName | GMSPlaceFieldFormattedAddress);

  __weak typeof(self) weakSelf = self;
  [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:placeFields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) {
    __typeof__(self) strongSelf = weakSelf;
    if (strongSelf == nil) {
      return;
    }

    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    }

    GMSPlace *place = likelihoods.firstObject.place;
    if (place == nil) {
      strongSelf.nameLabel.text = @"No current place";
      strongSelf.addressLabel.text = @"";
      return;
    }

    strongSelf.nameLabel.text = place.name;
    strongSelf.addressLabel.text = place.formattedAddress;
  }];
}

@end
      

Sonraki adımlar

Projeniz yapılandırıldıktan sonra örnek uygulamaları inceleyebilirsiniz. Cocoapods 1.6.1 sürümü yüklü olmalıdır.