Menyiapkan project Xcode

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

Catatan rilis tersedia untuk setiap data.

Langkah 1: Instal software yang diperlukan

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

  • Xcode versi 15.0 atau yang lebih baru

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

Swift Package Manager

Maps SDK for iOS dapat diinstal melalui Swift Package Manager. Untuk menambahkan SDK, pastikan Anda memiliki menghapus semua dependensi Maps SDK for iOS yang ada.

Untuk menambahkan SDK ke project baru atau yang sudah ada, ikuti langkah-langkah berikut:

  1. Buka project atau workspace Xcode, lalu buka File > Menambahkan Dependensi Paket.
  2. Masukkan https://github.com/googlemaps/ios-maps-sdk sebagai URL, tekan Enter untuk menarik paket, dan klik "{i>Add Package<i}".
  3. Untuk menginstal version tertentu, setel kolom Dependency Rule ke salah satu opsi berbasis versi. Untuk proyek baru, sebaiknya tentukan versi terbaru dan menggunakan "Versi Persis" sebelumnya. Setelah selesai, klik "Add Package".
  4. Dari jendela Choose Package Products, verifikasi GoogleMaps (untuk versi sebelum 9.0.0, verifikasi GoogleMaps, GoogleMapsBase, dan GoogleMapsCore) akan ditambahkan ke target main yang Anda tetapkan. Setelah selesai, klik "Add Package".
  5. Untuk memverifikasi penginstalan, buka panel General target Anda. Di Frameworks, Libraries, and Embedded Content, Anda akan melihat paket yang diinstal. Anda juga dapat melihat "{i>Package Dependencies<i}" bagian "Navigator Proyek" untuk memverifikasi paket dan versinya.

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

  1. Jika mengupgrade dari versi yang lebih lama dari 9.0.0, Anda harus menghapus dependensi berikut: GoogleMapsBase, GoogleMapsCore, dan GoogleMapsM4B setelah mengupgrade. Jangan hapus dependensi untuk GoogleMaps. Untuk informasi selengkapnya, lihat Catatan Rilis Versi 9.0.0.

    Dari setelan konfigurasi proyek Xcode Anda, temukan Frameworks, Libraries, dan Konten yang Disematkan. Gunakan tanda minus(-) untuk menghapus framework berikut:

    • GoogleMapsBase (Hanya untuk upgrade dari versi sebelum 9.0.0)
    • GoogleMapsCore (Hanya untuk upgrade dari versi sebelum 9.0.0)
    • GoogleMapsM4B (Hanya untuk upgrade dari versi sebelum 9.0.0)
  2. Dari Xcode, buka "File > Paket > Update Ke Versi Paket Terbaru".
  3. Untuk memverifikasi penginstalan, buka bagian Package Dependencies Project Navigator untuk memverifikasi paket dan versinya.

Untuk menghapus dependensi Maps SDK for iOS yang ditambahkan menggunakan CocoaPods, ikuti langkah berikut:

  1. Tutup ruang kerja Xcode Anda. Buka terminal dan jalankan perintah berikut:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. Hapus Podfile, Podfile.resolved, dan Xcode workspace jika Anda tidak menggunakannya untuk hal apa pun selain CocoaPods.

Untuk menghapus Maps SDK for iOS yang diinstal secara manual, ikuti langkah-langkah berikut:
  1. Dari setelan konfigurasi proyek Xcode Anda, temukan Frameworks, Libraries, dan Konten yang Disematkan. Gunakan tanda minus(-) untuk menghapus framework berikut:
    • GoogleMaps
    • GoogleMapsBase (Hanya untuk penginstalan yang lebih lama dari versi 9.0.0)
    • GoogleMapsCore (Hanya untuk penginstalan yang lebih lama dari versi 9.0.0)
    • GoogleMapsM4B (Hanya untuk penginstalan yang lebih lama dari versi 9.0.0)
  2. Dari direktori level teratas project Xcode Anda, hapus GoogleMaps paket.

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 proyek Xcode, buat sekarang dan simpan ke komputer lokal Anda. Jika Anda baru mengenal pengembangan iOS:
    1. Membuat project baru.
    2. Pilih iOS > Template aplikasi.
    3. Di layar opsi project:
      1. Masukkan Project Name.
      2. Catat nilai kolom ID paket. Anda dapat menggunakan nilai tersebut untuk membatasi kunci API di bawah.
      3. Tetapkan Interface project 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 dependensi versions. Berikut ini contoh yang menyertakan dependensi yang Anda butuhkan untuk Maps SDK for iOS:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '8.4.0'
    end
    
    Pastikan untuk menjalankan pod outdated secara rutin guna mendeteksi jika ada versi yang lebih baru versi lama untuk memastikan Anda selalu mendapatkan info terbaru. Jika perlu, upgrade ke versi terbaru.
  4. Simpan Podfile.
  5. Buka terminal, lalu 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 project yang sudah ada, ikuti langkah-langkah berikut:

  1. Buka terminal, lalu buka direktori project yang berisi Podfile.
  2. Jalankan perintah pod update. Tindakan ini akan mengupdate semua API yang ditentukan dalam Podfile ke versi terbaru.

Penginstalan Manual

Panduan ini menunjukkan cara menambahkan XCFrameworks yang berisi Maps SDK for iOS secara manual ke project Anda dan mengonfigurasi setelan build di Xcode. XCFramework adalah paket biner yang dapat digunakan di berbagai platform, termasuk mesin yang menggunakan Apple silicon.
  1. Download file resource dan biner SDK berikut:
  2. Ekstrak file tersebut untuk mengakses XCFrameworks dan resource.
  3. Jika Anda belum memiliki proyek Xcode, buat sekarang dan simpan ke komputer lokal Anda. Jika Anda baru mengenal pengembangan iOS:
    1. Membuat project baru.
    2. Pilih iOS > Template aplikasi.
    3. Di layar opsi project:
      1. Masukkan Project Name.
      2. Catat nilai kolom ID paket. Anda dapat menggunakan nilai tersebut untuk membatasi kunci API di bawah.
      3. Tetapkan Interface project ke Storyboard.
      4. Setel Language ke Swift atau Objective-C.
  4. Buka tab General. Tarik XCFrameworks berikut ke project Anda di bagian Frameworks, Libraries, and Embedded Content. Pastikan untuk memilih Do Not Embed untuk setiap XCFramework:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. Salin GoogleMaps.bundle dari GoogleMapsResources yang Anda unduh ke direktori level atas proyek Xcode Anda. Pastikan untuk memilih Salin item ke folder grup tujuan saat diminta.
  6. Pilih proyek Anda dari Navigator Proyek, dan pilih target aplikasi Anda.
  7. Buka tab Build Phases untuk target aplikasi Anda. Dalam Link Binary with Libraries, tambahkan perintah berikut framework dan library:
    • 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 (Hanya jika Anda menggunakan OpenGL)
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. Pilih proyek Anda, bukan target tertentu, dan buka Build Settings. Pada kotak Linking - General -> Penaut Lainnya Tanda, tambahkan -ObjC ke "Debug" dan "{i>Release<i}". Jika setelan tidak terlihat, ubah filter di panel Build Settings dari Dasar ke Semua.

  9. Untuk menginstal XCFramework Places SDK for iOS, lihat Memulai dengan Places SDK for iOS.

Langkah 3: Periksa file Manifes Privasi Apple

Apple mewajibkan detail privasi aplikasi untuk aplikasi di App Store. Kunjungi halaman Detail Privasi Apple App Store untuk pembaruan dan informasi selengkapnya.

File Manifes Privasi Apple disertakan dalam paket resource untuk SDK. Untuk memverifikasi bahwa File Manifes Privasi telah disertakan, dan untuk memeriksa kontennya, buat arsip aplikasi dan buat laporan privasi dari arsip.

Langkah 4: Tambahkan kunci API Anda ke project

Di bagian Mendapatkan kunci API, Anda membuat kunci API untuk aplikasi Anda. 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 application(_:didFinishLaunchingWithOptions:) Anda , dengan menggunakan kunci API Anda:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Jika Anda juga menggunakan Places API, tambahkan kunci Anda lagi seperti yang ditampilkan 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 application:didFinishLaunchingWithOptions: Anda , dengan menggunakan kunci API Anda:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Jika Anda juga menggunakan Places API, tambahkan kunci Anda lagi seperti yang ditampilkan di sini:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Langkah 5: Tambahkan peta

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

Langkah 5 (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 di file Info.plist aplikasi. Tujuan Maps SDK for iOS membuka aplikasi seluler Google Maps saat pengguna mengklik logo Google di peta, sehingga aplikasi Anda dapat mendeklarasikan URL yang relevan skema baru.

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

LSApplicationQueriesSchemes googlechrome comgooglemaps

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 pada peta:

  • -canOpenURL: gagal untuk URL: "comgooglemaps://" - error: "Aplikasi ini tidak diizinkan untuk mengkueri comgooglemaps skema"
  • -canOpenURL: gagal untuk URL: "googlechromes://" - error: "Aplikasi ini tidak diizinkan untuk mengkueri googlechromes skema"

Untuk menghilangkan error ini, tambahkan deklarasi ke Info.plist Anda.

Langkah berikutnya

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