Konfigurowanie projektu Xcode

Wykonaj czynności opisane w tym przewodniku, aby pobrać pakiet SDK Miejsc na iOS, dodać bibliotekę i zależności jej aplikacji oraz bezpłatnie pobrać klucz interfejsu API.

Dla każdej wersji dostępne są Informacje o wersji.

Krok 1. Pobierz najnowszą wersję Xcode

Aby utworzyć projekt za pomocą pakietu Places SDK dla iOS, potrzebujesz:

  1. Xcode w wersji 14.0 lub nowszej.
  2. Cocoapods lub Kartagina.

Krok 2. Zainstaluj pakiet SDK

Aby zainstalować interfejs API w nowym projekcie:

Używaj kokosów

Pakiet SDK Miejsc na iOS zawiera poda CocoaPod o nazwie GooglePlaces, który zawiera wszystkie funkcje miejsc.

CocoaPods to menedżer zależności open source dla projektów Swift i Goal-C Cocoa. Jeśli nie masz jeszcze narzędzia CocoaPods, zainstaluj je na systemie macOS, uruchamiając w terminalu to polecenie. Więcej informacji znajdziesz w przewodniku dla początkujących na temat CocoaPods.

sudo gem install cocoapods

Utwórz pakiet Podfile pakietu SDK Miejsc na iOS i użyj go do zainstalowania pakietu SDK i jego zależności:

  1. Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz programowanie w iOS, utwórz nowy projekt i wybierz Szablon aplikacji na iOS.
  2. Utwórz w katalogu projektu plik o nazwie Podfile. Ten plik definiuje zależności projektu.
  3. Edytuj element Podfile i dodaj zależności wraz z ich wersjami. Oto przykład, który określa nazwę celu aplikacji, oraz nazwę poda GooglePlaces:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '14.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GooglePlaces', '8.0.0'
    end
    
    Uruchom regularnie pod outdated, aby wykryć, czy jest dostępna nowsza wersja, aby zawsze być na bieżąco.
  4. Zapisz Podfile.
  5. Otwórz terminal i przejdź do katalogu zawierającego Podfile:

    cd <path-to-project>
  6. Uruchom polecenie pod install. Spowoduje to zainstalowanie interfejsów API określonych w zasadzie Podfile, a także wszystkich ich zależności.

    pod install
  7. Zamknij Xcode, a następnie kliknij dwukrotnie plik .xcworkspace projektu, aby uruchomić Xcode. Od teraz do otwierania tego projektu musisz używać pliku .xcworkspace.

Aby zaktualizować interfejs API w istniejącym projekcie:

  1. Otwórz terminal i przejdź do katalogu, w którym znajduje się Podfile.
  2. Uruchom polecenie pod update. Spowoduje to zaktualizowanie wszystkich interfejsów API określonych w zasadzie Podfile do najnowszej wersji.

Użyj Kartaginy

Pakiet SDK Miejsc na iOS jest dostępny w Carthage – prostym, zdecentralizowanym menedżerze zależności dla projektów Cowa Swift i Goal-C.

  1. Zainstaluj Carthage. Możesz to zrobić na kilka sposobów, więc szczegółowe instrukcje znajdziesz w pliku Carthage README.
  2. Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz programowanie w iOS, utwórz nowy projekt i wybierz Szablon aplikacji na iOS.
  3. Utwórz w katalogu projektu plik o nazwie Cartfile. Ten plik definiuje zależności projektu.
  4. Edytuj Cartfile i dodaj zależności wraz z ich wersjami:
     binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
    Pamiętaj, aby regularnie uruchamiać usługę carthage outdated, aby zawsze była dostępna nowsza wersja.
  5. Zapisz Cartfile.
  6. W oknie terminala przejdź do katalogu zawierającego Cartfile:
    cd <path-to-project>
  7. Uruchom polecenie carthage update. Spowoduje to zainstalowanie interfejsów API określonych w zasadzie Cartfile, a także wszystkich ich zależności.
  8. W programie Finder w katalogu projektów otwórz pobrane pliki platformy w folderze Carthage/Build/iOS.
  9. Przeciągnij te pakiety do projektu (jeśli pojawi się taka prośba, wybierz W razie potrzeby skopiuj elementy):
    • GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
  10. Kliknij prawym przyciskiem GooglePlaces.xcframework projekt i wybierz Pokaż w Finderze.
  11. Przeciągnij GooglePlaces.bundle z folderu Resources do projektu. Upewnij się, że Skopiuj elementy do folderu grupy docelowejnie jest wybrane.
  12. Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
  13. Otwórz kartę Etapy kompilacji, a następnie w sekcji Połącz plik binarny z bibliotekami dodaj te platformy i biblioteki:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  14. Wybierz projekt, a nie określony cel, i otwórz kartę Ustawienia kompilacji.

  15. W sekcji Inne flagi łączące dodaj -ObjC. Jeśli nie widzisz tych ustawień, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie.

Aby zaktualizować interfejs API w istniejącym projekcie:

  1. Otwórz terminal i przejdź do katalogu, w którym znajduje się Cartfile.
  2. Uruchom polecenie carthage update. Wszystkie interfejsy API określone w Cartfile zostaną zaktualizowane do najnowszej wersji.

Zainstaluj ręcznie

Z tego przewodnika dowiesz się, jak ręcznie dodać platformę GooglePlaces do projektu i skonfigurować ustawienia kompilacji w Xcode.

  1. Pobierz pliki źródłowe pakietu SDK: GooglePlaces-8.0.0
  2. Rozpakuj pliki źródłowe.
  3. Uruchom Xcode i otwórz istniejący projekt lub utwórz nowy. Jeśli dopiero zaczynasz programowanie w iOS, utwórz nowy projekt i wybierz Szablon aplikacji na iOS.
  4. Usuń z projektu wszystkie pakiety Map z poprzednich wersji.
  5. Przeciągnij te pakiety do projektu (jeśli pojawi się taka prośba, wybierz W razie potrzeby skopiuj elementy):
    • GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
  6. Kliknij prawym przyciskiem GooglePlaces.xcframework projekt i wybierz Pokaż w Finderze.
  7. Przeciągnij GooglePlaces.bundle z folderu Resources do projektu. Upewnij się, że Skopiuj elementy do folderu grupy docelowejnie jest wybrane.
  8. Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
  9. Otwórz kartę Etapy kompilacji, a następnie w sekcji Połącz plik binarny z bibliotekami dodaj te platformy i biblioteki:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  10. Wybierz projekt, a nie określony cel, i otwórz kartę Ustawienia kompilacji.

  11. W sekcji Inne flagi łączące dodaj -ObjC. Jeśli nie widzisz tych ustawień, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie.

Zainstaluj XCFramework

XCFramework to pakiet binarny, którego można używać na wielu platformach, w tym na komputerach z chipsetem M1, do instalowania pakietu Places SDK dla iOS. Z tego przewodnika dowiesz się, jak dodać do projektu pakiet XCFramework zawierający pakiet SDK Miejsc na iOS, oraz skonfigurować ustawienia kompilacji w Xcode.

Z kartonem

Pakiet SDK Miejsc na iOS jest dostępny w Carthage – prostym, zdecentralizowanym menedżerze zależności dla projektów Cowa Swift i Goal-C.

  1. Zainstaluj Carthage. Możesz to zrobić na kilka sposobów, więc szczegółowe instrukcje znajdziesz w pliku Carthage README.
  2. Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz programowanie w iOS, utwórz nowy projekt i wybierz Szablon aplikacji na iOS.
  3. Utwórz w katalogu projektu plik o nazwie Cartfile. Ten plik definiuje zależności projektu.
  4. Edytuj pole Cartfile i dodaj zależności wraz z ich wersjami:

    binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
  5. Zapisz Cartfile.
  6. W oknie terminala przejdź do katalogu zawierającego Cartfile:

    cd <path-to-project>
  7. Uruchom polecenie carthage update. Spowoduje to zainstalowanie interfejsów API określonych w zasadzie Cartfile, a także wszystkich ich zależności.
  8. W Finderze znajdź w katalogu projektu pobrane pliki platformy w obszarze: Carthage/Build.
  9. Przeciągnij ten kod XCFramework do swojego projektu w sekcji Frameworks, Bibliotek i treści umieszczonej. Pamiętaj, aby wybrać opcję Nie umieszczaj:
    • GooglePlaces-x.x.x/GooglePlaces.xcframework
  10. Kliknij prawym przyciskiem GooglePlaces.xcframework projekt i wybierz Pokaż w Finderze.
  11. Przeciągnij GooglePlaces.bundle z folderu ios-arm64/GooglePlaces.framework/Resources do katalogu najwyższego poziomu w projekcie Xcode. Gdy pojawi się prośba, zaznacz opcję Kopiuj elementy do folderu grupy docelowej.
  12. Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
  13. Otwórz kartę Etapy kompilacji, a następnie w sekcji Połącz plik binarny z bibliotekami dodaj te platformy i biblioteki:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  14. Wybierz projekt, a nie określony cel, i otwórz kartę Ustawienia kompilacji.

  15. W sekcji Inne flagi łączące dodaj -ObjC. Jeśli nie widzisz tych ustawień, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie.

Ręcznie

Z tego przewodnika dowiesz się, jak ręcznie dodać do projektu pakiet SDK Map Google na iOS i skonfigurować ustawienia kompilacji w Xcode.

  1. Pobierz pliki źródłowe pakietu SDK: GooglePlaces-8.0.0.
  2. Rozpakuj pliki źródłowe. Przejdź do folderu Frameworks, aby uzyskać dostęp do XCFramework.
  3. Uruchom Xcode i otwórz istniejący projekt lub utwórz nowy. Jeśli dopiero zaczynasz korzystać z iOS, utwórz nowy projekt i wybierz szablon aplikacji na iOS.
  4. Przeciągnij ten kod XCFramework do swojego projektu w sekcji Frameworks, Bibliotek i treści umieszczonej. Pamiętaj, aby wybrać opcję Nie umieszczaj:
    • GooglePlaces-x.x.x/GooglePlaces.xcframework
  5. Kliknij prawym przyciskiem GooglePlaces.xcframework projekt i wybierz Pokaż w Finderze.
  6. Przeciągnij GooglePlaces.bundle z folderu ios-arm64/GooglePlaces.framework/Resources do katalogu najwyższego poziomu w projekcie Xcode. Gdy pojawi się prośba, zaznacz opcję Kopiuj elementy do folderu grupy docelowej.
  7. Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
  8. Otwórz kartę Etapy kompilacji, a następnie w sekcji Połącz plik binarny z bibliotekami dodaj te platformy i biblioteki:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  9. Wybierz projekt, a nie określony cel, i otwórz kartę Ustawienia kompilacji.

  10. W sekcji Inne flagi łączące dodaj -ObjC. Jeśli nie widzisz tych ustawień, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie.

Krok 3. Dodaj klucz interfejsu API do swojej aplikacji

W poniższych przykładach zastąp YOUR_API_KEY kluczem interfejsu API.

Swift

Dodaj klucz interfejsu API do AppDelegate.swift w ten sposób:

  • Dodaj tę instrukcję importu:
    import GooglePlaces
  • Dodaj do metody application(_:didFinishLaunchingWithOptions:) ten fragment, zastępując YOUR_API_KEY kluczem API:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

Dodaj klucz interfejsu API do AppDelegate.m w ten sposób:

  • Dodaj tę instrukcję importu:
    @import GooglePlaces;
  • Dodaj do metody application:didFinishLaunchingWithOptions: ten fragment, zastępując YOUR_API_KEY kluczem API:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Krok 4. Zacznij pisać kod

Te przykłady kodu pokazują, jak pobrać obecne miejsce.

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
      

Dalsze kroki

Po skonfigurowaniu projektu możesz zapoznać się z przykładowymi aplikacjami. Musisz zainstalować Cocoapods w wersji 1.6.1.