Faturalandırmayı etkinleştirip bir API anahtarı oluşturduktan sonra Uygulamanızı geliştirmek için kullandığınız Xcode projesidir.
Her sürüm için sürüm notları mevcuttur kullanabilirsiniz.
1. Adım: Gerekli yazılımı yükleyin
iOS için Yerler SDK'sını kullanarak proje oluşturmak için gerekenler:
- Xcode 15.0 sürümü veya sonraki sürümler
2. Adım: Xcode projesini oluşturun ve iOS için Yerler SDK'sını yükleyin
Swift Paket Yöneticisi
iOS için Yerler SDK'sı üzerinden yüklenebilir Swift Package Manager'a dokunun. SDK'yı eklemek için Mevcut iOS bağımlılıkları için Yerler SDK'sını kaldırdık.
SDK'yı yeni veya mevcut bir projeye eklemek için aşağıdaki adımları uygulayın:
-
Xcode
project
veyaworkspace
dosyanızı açın, ardından Dosya > Paket Bağımlılıkları Ekleyin. - URL olarak https://github.com/googlemaps/ios-places-sdk adresini girin ve Enter'a basın paketi çekin ve "Paket Ekle"yi tıklayın.
-
Belirli bir
version
yüklemek için Bağımlılık Kuralı alanını sürüm temelli seçeneklerdir. Yeni projeler için en son sürümü ve "Tam Sürüm"ü kullanarak seçeneğini belirleyin. İşlem tamamlandığında "Paket Ekle"yi tıklayın. -
Paket Ürünlerini Seçin penceresinde,
GooglePlaces
öğesinin şuraya ekleneceğini doğrulayın: belirlediğinizmain
hedefidir. İşlem tamamlandığında "Paket Ekle"yi tıklayın. -
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. "Paket Bağımlılıkları"nı da görüntüleyebilirsiniz "Project Navigator"ın bölümü .
Mevcut bir projenin package
öğesini güncellemek için şu adımları izleyin:
9.0.0'dan önceki bir sürümden yeni sürüme geçiyorsanız şunları kaldırmanız gerekir: şu bağımlılıklar:
GoogleMapsBase
,GoogleMapsCore
ve Yükseltme işleminden sonraGoogleMapsM4B
. Bağımlılığı kaldırmayın:GoogleMaps
Daha fazla bilgi için Sürüm 9.0.0 Sürüm Notları.Xcode proje yapılandırma ayarlarınızdan Çerçeveler, Kitaplıklar, ve yerleştirilmiş içerik gibi diğer özelliklerden de faydalanabilirsiniz. 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)
- Xcode'dan "File > (Dosya) > Paketler > En Son Paket Sürümlerine Güncelleyin".
- Yüklemenizi doğrulamak için Project Navigator'ın Paket Bağımlılıkları bölümüne gidin .
CocoaPods
, aşağıdaki adımları uygulayın:
- 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
-
Podfile
,Podfile.resolved
ve CocoaPods dışında bir şey için kullanmıyorsanız Xcodeworkspace
.
-
Xcode proje yapılandırma ayarlarınızdan Çerçeveler, Kitaplıklar,
ve yerleştirilmiş içerik gibi diğer özelliklerden de faydalanabilirsiniz. Aşağıdaki çerçeveyi kaldırmak için eksi işaretini(-) kullanın:
GooglePlaces.xcframework
-
Xcode projenizin üst düzey dizininden
GooglePlaces
öğesini kaldırın. paket.
CocoaPods
iOS için Yerler SDK'sı CocoaPod olarak kullanıma sunulmuştur. pod'u, GooglePlaces'i içerir.
CocoaPods, Swift ve Objective-C için açık kaynaklı bir bağımlılık yöneticisidir. Kakao projeleri. CocoaPods aracınız yoksa macOS'e aşağıdaki komutu terminalden çalıştırarak erişebilirsiniz. Ayrıntılar için bkz. CocoaPods Başlangıç Kılavuzu'na göz atın.
sudo gem install cocoapods
iOS için Yerler SDK'sı için bir Podfile
oluşturun ve
aşağıdaki adımları uygulayarak SDK'yı ve bağımlılarını yükleyin:
- Henüz bir Xcode projeniz yoksa şimdi bir tane oluşturun ve yerel makinenize bakın. iOS'te geliştirme yapmaya yeni başladıysanız yeni bir proje oluşturun iOS Uygulaması şablonunu seçin.
- Proje dizininizde
Podfile
adlı bir dosya oluşturun. Bu projenizin bağımlılıklarını tanımlar. Podfile
öğesini düzenleyin ve sürümleriyle birlikte bağımlılıklarınızı ekleyin. Burada uygulamanızın hedef adını veGooglePlaces
kapsülü:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.3.0' end
pod outdated
eklentisini düzenli olarak çalıştırdığınızdan emin olun. her zaman en yeni sürüme sahip olmanızı sağlar.Podfile
dosyasını kaydedin.Bir terminal penceresi açın ve şunu içeren dizine gidin:
Podfile
:cd <path-to-project>
pod install
komutunu çalıştırın. Bu işlem, Bağımlılıklarla birliktePodfile
öğesinde belirtilen API'ler yardımcı olabilir.pod install
Xcode'u kapatın ve ardından projenizin klasörünü açın (çift tıklayın)
.xcworkspace
dosyasını kullanarak Xcode'u başlatı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:
- Bir terminal penceresi açın ve
Podfile
öğesini içeren proje dizinine gidin. pod update
komutunu çalıştırın. Bu işlem tüm API'leri güncellerPodfile
sürümdeki en son sürüme güncelleyin.
Manuel yükleme
Bu kılavuzda, iOS için Yerler SDK'sını içeren XCFramework'ün oluşturun ve derleme ayarlarınızı Xcode'da yapılandırın. XCFramework, çeşitli platformlarda kullanabileceğiniz bir ikili programdır. Apple Silicon uygulamasını kullanarak gönderin.
- Aşağıdaki SDK ikili program ve kaynak dosyalarını indirin:
- XCFramework'e ve kaynaklara erişmek için dosyaları çıkarın.
- Xcode'u başlatın ve mevcut bir projeyi açın veya yeni bir proje oluşturun belirler. iOS'te geliştirme yapmaya yeni başladıysanız yeni bir proje oluşturun ve iOS Uygulaması şablonu'nu seçin.
- Projenizden önceki sürümlerden tüm Haritalar paketlerini kaldırın.
-
Genel sekmesini açın. Aşağıdaki XCFramework'ü projenize sürükleyin
Çerçeveler, Kitaplıklar ve Yerleştirilmiş İçerikler bölümünde bulabilirsiniz. Şunlardan emin olun:
Yerleştirme'yi seçin:
GooglePlaces.xcframework
İndirdiğiniz GooglePlacesResources'tan -
GooglePlacesResources'tan
GooglePlaces.bundle
öğesini kopyalayın. dosyayı Xcode projenizin üst düzey dizinine indirin. Şu seçeneği belirlediğinizden emin olun: İstendiğinde öğeleri hedef grubun klasörüne kopyalayın. - Project Navigator'dan projenizi seçin ve hedefi belirleyebilirsiniz.
-
Derleme Aşamaları sekmesini açın. Şununla İkili Program Arasında Bağlantı Oluştur:
Kitaplıklara aşağıdaki çerçeveleri ve kitaplıkları ekleyin:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
-
Belirli bir hedef yerine projenizi seçin ve Derleme Ayarları sekmesi. Bağlantı - Genel -> Diğer Bağlayıcı İşaretler bölümünde,
-ObjC
öğesini "Hata ayıklama"ya ekleyin ve "Serbest bırak". Bu ayarlar görünmüyor, Derleme Ayarları çubuğundan filtreyi değiştirin Temel'den Tümü'ne.
GooglePlaces.bundle
simgesini sürükleyin
GooglePlacesSwift
GooglePlacesSwift (Önizleme) SDK'sını Swift Package Manager ve CocoaPods'u kullanarak veya manuel olarak yükleyebilirsiniz. İlgili içeriği oluşturmak için kullanılan adımlarının, kurulum adımlarında belirtilen adımları uygulayarak Aşağıdaki farklılıklarla iOS için Yerler SDK'sı:
- Xcode 15.3 zorunludur.
- Swift Package Manager'ı kullanıyorsanız
GooglePlacesSwift
ileGooglePlaces
. Bu, import ifadelerini içerir.- https://github.com/googlemaps/ios-places-sdk örneklerini https://github.com/googlemaps/ios-places-swift-sdk ile değiştirin.
- Sürüm numarasını 0.1.0 olarak güncelleyin.
- Manuel olarak yüklüyorsanız aşağıdaki SDK ikili programlarını ve kaynak dosyalarını indirin:
Örneğin, CocoaPods kullanıyorsanız düzenlenen Podfile
görünümü şu şekilde görünür:
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.3' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlacesSwift', '0.1.0' end
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ı uygulamanıza ekleyin
Aşağıdaki örneklerde YOUR_API_KEY
öğesini kendi API anahtarınızla değiştirin.
Swift
API anahtarınızı AppDelegate.swift
cihazınıza aşağıdaki şekilde ekleyin:
- Aşağıdaki içe aktarma deyimini ekleyin:
import GooglePlaces
- Şunları ekleyin:
application(_:didFinishLaunchingWithOptions:)
yöntemi yerine YOUR_API_KEY ifadesini API anahtarınızla değiştirin:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
API anahtarınızı AppDelegate.m
cihazınıza aşağıdaki şekilde ekleyin:
- Aşağıdaki içe aktarma deyimini ekleyin:
@import GooglePlaces;
- Şunları ekleyin:
application:didFinishLaunchingWithOptions:
yöntemi yerine YOUR_API_KEY ifadesini API anahtarınızla değiştirin:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
GooglePlacesSwift
API anahtarınızı AppDelegate.swift
cihazınıza aşağıdaki şekilde ekleyin:
- Aşağıdaki içe aktarma deyimini ekleyin:
import GooglePlacesSwift
- Şunları ekleyin:
application(_:didFinishLaunchingWithOptions:)
yöntemi yerine YOUR_API_KEY ifadesini API anahtarınızla değiştirin:PlacesClient.shared.provideAPIKey("YOUR_API_KEY")
5. Adım: Kod yazmaya başlayın
Aşağıdaki kod örnekleri, geçerli yerin nasıl alınacağını 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
GooglePlacesSwift
struct ContentView: View { @State var place: Place? var body: some View { Button("Get Place") { // A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [.displayName, .formattedAddress] ) Task { switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): self.place = place case .failure(let placesError): // Handle error } Text(swiftPlace?.displayName ?? "No place yet") .padding() Text(swiftPlace?.formattedAddress ?? "No place yet") .padding() } }
Sonraki adımlar
Projeniz yapılandırıldıktan sonra örnek uygulamalar.