Menyiapkan Project Xcode

Setelah mengaktifkan penagihan dan membuat kunci API, Anda siap untuk menyiapkan project Xcode yang digunakan untuk mengembangkan aplikasi.

Langkah 1: Instal software yang diperlukan

Untuk membuat project menggunakan Maps SDK for iOS, Anda harus mendownload dan menginstal:

  • Xcode versi 13.0 atau yang lebih baru
  • Cocoapods atau Carthage

Langkah 2: Buat project XCode dan instal Maps SDK for iOS

Menggunakan CocoaPods

Maps SDK for iOS tersedia sebagai pod CocoaPods. CocoaPods merupakan pengelola dependensi open source untuk proyek Swift dan Objective-C Cocoa.

Jika Anda belum memiliki alat CocoaPods, instal di macOS dengan menjalankan perintah berikut dari terminal. Untuk mengetahui detailnya, lihat Panduan Memulai CocoaPods.

sudo gem install cocoapods

Buat Podfile untuk Maps SDK for iOS dan gunakan untuk menginstal API beserta dependensinya:

  1. Jika Anda belum memiliki project Xcode, buat project sekarang dan simpan ke mesin lokal Anda. Jika Anda baru mengenal pengembangan iOS:
    1. Buat project baru.
    2. Pilih template iOS > App.
    3. Pada layar opsi project:
      1. Masukkan Nama Project.
      2. Catat nilai kolom ID paket. Anda dapat menggunakan nilai tersebut untuk membatasi kunci API di bawah.
      3. Setel project Interface ke Storyboard.
      4. Setel Language ke Swift atau Objective-C.
  2. Buat file bernama Podfile dalam direktori project Anda. File ini mendefinisikan dependensi project Anda.
  3. Edit Podfile dan tambahkan dependensi Anda beserta versinya. Berikut adalah contoh yang menyertakan dependensi yang Anda perlukan untuk Maps SDK for iOS:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '13.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '7.1.0'
    end
    Pastikan Anda menjalankan pod outdated secara rutin untuk mendeteksi saat ada versi yang lebih baru untuk memastikan Anda selalu menggunakan versi terbaru. Jika perlu, upgrade ke versi terbaru.
  4. Simpan Podfile.
  5. Buka terminal dan buka direktori yang berisi Podfile:

    cd <path-to-project>
  6. Jalankan perintah pod install. Ini akan menginstal API yang ditentukan di Podfile, beserta dependensi yang mungkin dimiliki.

    pod install
  7. Tutup Xcode, lalu buka (klik dua kali) file .xcworkspace project Anda untuk meluncurkan Xcode. Mulai saat ini dan seterusnya, Anda harus menggunakan file .xcworkspace untuk membuka project.

Untuk mengupdate API untuk project yang sudah ada, ikuti langkah-langkah berikut:

  1. Buka terminal dan buka direktori project yang berisi Podfile.
  2. Jalankan perintah pod update. Ini akan mengupdate semua API yang ditentukan di Podfile ke versi terbaru.

Gunakan Carthage

Maps SDK for iOS tersedia untuk digunakan dengan Carthage, pengelola dependensi yang terdesentralisasi sederhana untuk project Swift dan Objective-C Cocoa.

  1. Instal Carthage. Ada beberapa metode, jadi lihat file README Carthage untuk mengetahui langkah-langkahnya.
  2. Jika Anda belum memiliki project Xcode, buat project sekarang dan simpan ke mesin lokal Anda. Jika Anda baru mengenal pengembangan iOS:
    1. Buat project baru.
    2. Pilih template iOS > App.
    3. Pada layar opsi project:
      1. Masukkan Nama Project.
      2. Catat nilai kolom ID paket. Anda dapat menggunakan nilai tersebut untuk membatasi kunci API di bawah.
      3. Setel project Interface ke Storyboard.
      4. Setel Language ke Swift atau Objective-C.
  3. Buat file bernama Cartfile dalam direktori project Anda. File ini menentukan dependensi project Anda.
  4. Edit Cartfile dan tambahkan dependensi beserta versinya:
    binary "https://dl.google.com/geosdk/GoogleMaps.json" == 6.2.1
    Pastikan Anda menjalankan carthage outdated secara rutin untuk mendeteksi saat ada versi yang lebih baru guna memastikan Anda selalu menggunakan versi terbaru. Jika perlu, upgrade ke versi terbaru.
  5. Simpan Cartfile.
  6. Di jendela terminal, buka direktori yang berisi Cartfile:
    cd <path-to-project>
  7. Jalankan perintah carthage update. Ini akan menginstal API yang ditentukan di Cartfile, beserta dependensi yang mungkin dimiliki.
  8. Di Finder, dalam direktori project Anda, buka file framework yang didownload di bagian Carthage/Build/iOS.
  9. Tarik paket berikut ke dalam project Anda: (Jika diminta, pilih Copy items if needed, please use the same version as above.)
    • GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.framework
    • GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.framework
    • GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.framework
    • (Khusus pelanggan Premium Plan) GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.framework
  10. Klik kanan GoogleMaps.framework di project Anda, dan pilih Show in Finder.
  11. Tarik GoogleMaps.bundle dari folder Resources ke direktori level teratas project Xcode Anda. Jika diminta, pastikan Copy items into destination group's folder tidak dipilih.
  12. Pilih project Anda dari Navigator Project, lalu pilih sasaran aplikasi Anda.
  13. Buka tab Build Phases untuk target aplikasi Anda, dan dalam Link Binary with Libraries, tambahkan framework dan library berikut:
    • Accelerate.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
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  14. Pilih project Anda, bukan target tertentu, dan buka tab Build Settings. Di bagian Other Linker Flags, tambahkan -ObjC. Jika setelan ini tidak terlihat, ubah filter di bar Build Settings dari Basic ke All.

  15. Untuk menginstal Places SDK for iOS, lihat Memulai SDK Places for iOS.

Untuk mengupdate API untuk project yang sudah ada, ikuti langkah-langkah berikut:

  1. Buka terminal dan buka direktori project yang berisi Cartfile.
  2. Jalankan perintah carthage update. API ini akan mengupdate semua API yang ditentukan dalam Cartfile ke versi terbaru.

Menginstal secara manual

Panduan ini menunjukkan cara menambahkan Maps SDK for iOS secara manual ke project Anda dan mengonfigurasi setelan build di Xcode.

  1. Download file sumber SDK: GoogleMaps-7.1.0.
  2. Buka ekstensi file sumber.
  3. Jika Anda belum memiliki project Xcode, buat project sekarang dan simpan ke mesin lokal Anda. Jika Anda baru mengenal pengembangan iOS:
    1. Buat project baru.
    2. Pilih template iOS > App.
    3. Pada layar opsi project:
      1. Masukkan Nama Project.
      2. Catat nilai kolom ID paket. Anda dapat menggunakan nilai tersebut untuk membatasi kunci API di bawah.
      3. Setel project Interface ke Storyboard.
      4. Setel Language ke Swift atau Objective-C.
  4. Tarik paket berikut ke dalam project Anda: (Jika diminta, pilih Copy items if needed, please use the same version as above.)
    • GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.framework
    • GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.framework
    • GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.framework
    • (Khusus pelanggan Premium Plan) GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.framework
  5. Klik kanan GoogleMaps.framework di project Anda, dan pilih Show in Finder.
  6. Tarik GoogleMaps.bundle dari folder Resources ke direktori level teratas project Xcode Anda. Jika diminta, pastikan Copy items into destination group's folder tidak dipilih.
  7. Pilih project Anda dari Navigator Project, lalu pilih sasaran aplikasi Anda.
  8. Buka tab Build Phases untuk target aplikasi Anda, dan dalam Link Binary with Libraries, tambahkan framework dan library berikut:
    • Accelerate.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
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  9. Pilih project Anda, bukan target tertentu, dan buka tab Build Settings. Di bagian Other Linker Flags, tambahkan -ObjC. Jika setelan ini tidak terlihat, ubah filter di bar Build Settings dari Basic ke All.

  10. Untuk menginstal Places SDK for iOS, lihat Memulai SDK Places for iOS.

Menginstal XCFramework

XCFramework adalah paket biner yang dapat Anda gunakan pada beberapa platform, termasuk mesin yang menggunakan chipset M1, untuk menginstal Maps SDK for iOS. Panduan ini menunjukkan cara menambahkan XCFramework yang berisi Maps SDK for iOS ke project Anda dan mengonfigurasi setelan build di Xcode.

Dengan Kartago

Maps SDK for iOS tersedia untuk digunakan dengan Carthage, pengelola dependensi yang terdesentralisasi sederhana untuk project Swift dan Objective-C Cocoa.

  1. Instal Carthage. Ada beberapa metode, jadi lihat file README Carthage untuk mengetahui langkah-langkahnya.
  2. Jika Anda belum memiliki project Xcode, buat project sekarang dan simpan ke mesin lokal Anda. Jika Anda baru mengenal pengembangan iOS:
    1. Buat project baru.
    2. Pilih template iOS > App.
    3. Pada layar opsi project:
      1. Masukkan Nama Project.
      2. Catat nilai kolom ID paket. Anda dapat menggunakan nilai tersebut untuk membatasi kunci API di bawah.
      3. Setel project Interface ke Storyboard.
      4. Setel Language ke Swift atau Objective-C.
  3. Buat file bernama Cartfile dalam direktori project Anda. File ini menentukan dependensi project Anda.
  4. Edit Cartfile dan tambahkan dependensi Anda beserta versinya:

    binary "https://dl.google.com/geosdk/GoogleMaps.json" == 6.2.1-beta
  5. Simpan Cartfile.
  6. Di jendela terminal, buka direktori yang berisi Cartfile:
    cd <path-to-project>
  7. Jalankan perintah carthage update. Ini akan menginstal API yang ditentukan di Cartfile, beserta dependensi yang mungkin ada.
  8. Di Finder, dalam direktori project Anda, buka file framework yang didownload di bagian Carthage/Build.
  9. Tarik XCFrameworks berikut ke dalam project Anda di bagian Frameworks, Libraries, and Embedded Content. Pastikan untuk memilih Do Embed untuk setiap XCFramework:
    • GoogleMaps-x.x.x/GoogleMapsBase.xcframework
    • GoogleMaps-x.x.x/GoogleMaps.xcframework
    • GoogleMaps-x.x.x/GoogleMapsCore.xcframework
    • (Khusus pelanggan Premium Plan) GoogleMaps-x.x.x/GoogleMapsM4B.xcframework
  10. Klik kanan GoogleMaps.xcframework pada project Anda, dan pilih Show In Finder.
  11. Tarik GoogleMaps.bundle dari folder ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources ke direktori level teratas project Xcode Anda. Jika diminta, pastikan Copy items if needed tidak dipilih.
  12. Pilih project Anda dari Project Navigator, dan pilih target aplikasi Anda.
  13. Buka tab Build Phases untuk target aplikasi Anda, dan dalam Link Binary with Libraries, lalu tambahkan framework dan library berikut:
    • Accelerate.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
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  14. Pilih project Anda, bukan target tertentu, dan buka tab Build Settings. Di bagian Other Linker Flags, tambahkan -ObjC. Jika setelan ini tidak terlihat, ubah filter pada kolom Build Settings dari Basic ke All.

  15. Untuk menginstal Places SDK for iOS XCFramework, lihat Memulai Places SDK for iOS.

Secara manual

Panduan ini menunjukkan cara menambahkan Maps SDK for iOS secara manual ke project Anda dan mengonfigurasi setelan build di Xcode.

  1. Download file sumber SDK: GoogleMaps-7.1.0-beta-xcframework.
  2. Buka ekstensi file sumber.
  3. Jika Anda belum memiliki project Xcode, buat project sekarang dan simpan ke mesin lokal Anda. Jika Anda baru mengenal pengembangan iOS:
    1. Buat project baru.
    2. Pilih template iOS > App.
    3. Pada layar opsi project:
      1. Masukkan Nama Project.
      2. Catat nilai kolom ID paket. Anda dapat menggunakan nilai tersebut untuk membatasi kunci API di bawah.
      3. Setel project Interface ke Storyboard.
      4. Setel Language ke Swift atau Objective-C.
  4. Tarik XCFrameworks berikut ke dalam project Anda di bagian Frameworks, Libraries, and Embedded Content. Pastikan untuk memilih Do Embed untuk setiap XCFramework:
    • GoogleMaps-x.x.x/GoogleMapsBase.xcframework
    • GoogleMaps-x.x.x/GoogleMaps.xcframework
    • GoogleMaps-x.x.x/GoogleMapsCore.xcframework
    • (Khusus pelanggan Premium Plan) GoogleMaps-x.x.x/GoogleMapsM4B.xcframework
  5. Klik kanan GoogleMaps.xcframework pada project Anda, dan pilih Show In Finder.
  6. Tarik GoogleMaps.bundle dari folder ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources ke direktori level teratas project Xcode Anda. Jika diminta, pastikan Copy items if needed tidak dipilih.
  7. Pilih project Anda dari Project Navigator, dan pilih target aplikasi Anda.
  8. Buka tab Build Phases untuk target aplikasi Anda, dan dalam Link Binary with Libraries, lalu tambahkan framework dan library berikut:
    • Accelerate.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
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  9. Pilih project Anda, bukan target tertentu, dan buka tab Build Settings. Di bagian Other Linker Flags, tambahkan -ObjC. Jika setelan ini tidak terlihat, ubah filter pada kolom Build Settings dari Basic ke All.

  10. Untuk menginstal Places SDK for iOS XCFramework, lihat Memulai Places SDK for iOS.

Langkah 3: Tambahkan kunci API Anda ke project

Di bagian Dapatkan kunci API, Anda membuat kunci API untuk aplikasi. Sekarang tambahkan kunci tersebut ke project Xcode Anda.

Pada contoh berikut, ganti YOUR_API_KEY dengan kunci API Anda.

Swift

Tambahkan kunci API ke AppDelegate.swift sebagai berikut:

  1. Tambahkan pernyataan impor berikut:
    import GoogleMaps
  2. Tambahkan kode berikut ke metode application(_:didFinishLaunchingWithOptions:) Anda, menggunakan kunci API Anda:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Jika Anda juga menggunakan Places API, tambahkan kunci Anda lagi seperti yang ditunjukkan di sini:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

Tambahkan kunci API ke AppDelegate.m sebagai berikut:

  1. Tambahkan pernyataan impor berikut:
    @import GoogleMaps;
  2. Tambahkan kode berikut ke metode application:didFinishLaunchingWithOptions: Anda, menggunakan kunci API Anda:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Jika Anda juga menggunakan Places API, tambahkan kunci Anda lagi seperti yang ditunjukkan di sini:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Langkah 4 (Opsional): Pilih untuk menggunakan framework rendering Metal

Maps SDK for iOS memungkinkan Anda memilih untuk menggunakan framework rendering Metal dari Apple. Untuk mencoba perender Logam di aplikasi Anda, panggil [GMSServices setMetalRendererEnabled:YES] di Objective-C, atau GMSServices.setMetalRendererEnabled(true) di Swift sebelum membuat tampilan peta.

Jika Menginstal SDK secara manual, Anda juga harus memastikan untuk menambahkan Metal.framework di Xcode.

Langkah 5: Tambahkan peta

Kode di bawah ini menunjukkan cara menambahkan peta sederhana ke ViewController yang ada:

  1. Tambahkan atau perbarui metode di ViewController default aplikasi Anda untuk membuat dan menginisialisasi instance GMSMapView.

    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 camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
            let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera)
            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.
      GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                              longitude:151.20
                                                                   zoom:6];
      GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera];
      mapView.myLocationEnabled = YES;
      [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
    
          
  2. Jalankan aplikasi Anda. Anda akan melihat peta dengan satu penanda yang berpusat di atas Sydney, Australia. Jika Anda melihat penanda, tetapi peta tidak terlihat, pastikan bahwa Anda telah menyediakan kunci API.

Langkah 6 (Opsional): Deklarasikan skema URL yang digunakan oleh API

Mulai dari iOS 9 dan Xcode 7, aplikasi dapat mendeklarasikan skema URL yang ingin dibuka, dengan menentukan skema dalam file Info.plist aplikasi. Maps SDK for iOS membuka aplikasi seluler Google Maps saat pengguna mengklik logo Google di peta, sehingga aplikasi Anda dapat mendeklarasikan skema URL yang relevan.

Untuk mendeklarasikan skema URL yang digunakan oleh Maps SDK for iOS, tambahkan baris berikut ke Info.plist Anda:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>googlechromes</string>
    <string>comgooglemaps</string>
</array>

Tangkapan layar berikut menampilkan konfigurasi dalam antarmuka pengguna Xcode:

Konfigurasi LSApplicationQuerySchemes di Xcode

Tanpa deklarasi di atas, error berikut dapat terjadi saat pengguna mengetuk logo Google di peta:

-canOpenURL: failed for URL: "comgooglemaps://" - error: "This app is not allowed to query for scheme comgooglemaps"
-canOpenURL: failed for URL: "googlechromes://" - error: "This app is not allowed to query for scheme googlechromes"

Untuk menghilangkan error ini, tambahkan deklarasi ke Info.plist Anda seperti yang dijelaskan di atas.

Langkah berikutnya

Setelah memiliki kunci API dan project Xcode, Anda dapat membuat dan menjalankan aplikasi. Maps SDK for iOS menyediakan banyak tutorial dan aplikasi contoh yang dapat membantu Anda memulai. Untuk mengetahui detail selengkapnya, lihat: