สร้างโปรเจ็กต์ Xcode

หลังจากเปิดใช้การเรียกเก็บเงินและสร้างคีย์ API คุณก็พร้อมที่จะตั้งค่า Xcode แล้ว ที่คุณใช้เพื่อพัฒนาแอปของคุณ

บันทึกประจำรุ่นจะพร้อมใช้งานสำหรับแต่ละรายการ

ขั้นตอนที่ 1: ติดตั้งซอฟต์แวร์ที่จำเป็น

หากต้องการสร้างโปรเจ็กต์โดยใช้ Navigation SDK สำหรับ iOS คุณต้องดาวน์โหลดและติดตั้งดังนี้

  • Xcode เวอร์ชัน 15.0 ขึ้นไป

ขั้นตอนที่ 2: สร้างโปรเจ็กต์ Xcode และติดตั้ง Navigation SDK

เครื่องมือจัดการแพ็กเกจ Swift

SDK การนำทางสามารถติดตั้งผ่าน Swift Package Manager หากต้องการเพิ่ม SDK โปรดตรวจสอบว่าคุณมี นำทรัพยากร Dependency ของ Navigation SDK ที่มีอยู่ออก

หากต้องการเพิ่ม SDK ลงในโปรเจ็กต์ใหม่หรือโปรเจ็กต์ที่มีอยู่ ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิด Xcode project หรือ workspace แล้วไปที่ ไฟล์ > เพิ่มทรัพยากร Dependency ของแพ็กเกจ
  2. ป้อน https://github.com/googlemaps/ios-navigation-sdk เป็น URL แล้วกด Enter เพื่อดึงข้อมูลแพ็กเกจ แล้วคลิก "เพิ่มแพ็กเกจ"
  3. หากต้องการติดตั้ง version ที่เจาะจง ให้ตั้งค่าช่องกฎการขึ้นต่อกันเป็นค่าใดค่าหนึ่ง ตัวเลือกตามเวอร์ชัน สำหรับโปรเจ็กต์ใหม่ เราขอแนะนำให้ระบุเวอร์ชันล่าสุดและ โดยใช้ "เวอร์ชันที่แน่นอน" ตัวเลือก เมื่อเสร็จแล้ว ให้คลิก "เพิ่มแพ็กเกจ"
  4. จากหน้าต่างเลือกผลิตภัณฑ์แพ็กเกจ ให้ยืนยันว่าจะเพิ่ม GoogleNavigation ไปยัง เป้าหมาย main ที่คุณกำหนด เมื่อเสร็จแล้ว ให้คลิก "เพิ่มแพ็กเกจ"
  5. หากต้องการยืนยันการติดตั้ง ให้ไปที่แผง General ของเป้าหมาย คุณควรเห็นแพ็กเกจที่ติดตั้งไว้ในเฟรมเวิร์ก ไลบรารี และเนื้อหาที่ฝัง นอกจากนี้ คุณยังสามารถดู "ทรัพยากร Dependency ของแพ็กเกจ" ส่วนของ "Project Navigator" เพื่อยืนยันแพ็กเกจและเวอร์ชันของแพ็กเกจ

หากต้องการอัปเดต package สำหรับโปรเจ็กต์ที่มีอยู่ ให้ทำตามขั้นตอนต่อไปนี้

  1. หากกำลังอัปเกรดจากเวอร์ชันก่อน 9.0.0 คุณต้องนำออก ทรัพยากร Dependency ต่อไปนี้ GoogleMapsBase, GoogleMapsCore และ GoogleMapsM4B หลังจากอัปเกรด ไม่ต้องนำการอ้างอิงสำหรับ GoogleMaps สำหรับข้อมูลเพิ่มเติม โปรดดู บันทึกประจำรุ่นของเวอร์ชัน 9.0.0

    จากการตั้งค่าการกำหนดค่าโปรเจ็กต์ Xcode ให้ค้นหา Frameworks, Libraries และเนื้อหาแบบฝัง ใช้เครื่องหมายลบ(-)เพื่อนำเฟรมเวิร์กต่อไปนี้ออก

    • GoogleMapsBase (สำหรับการอัปเกรดจากเวอร์ชันก่อน 9.0.0 เท่านั้น)
    • GoogleMapsCore (สำหรับการอัปเกรดจากเวอร์ชันก่อน 9.0.0 เท่านั้น)
    • GoogleMapsM4B (สำหรับการอัปเกรดจากเวอร์ชันก่อน 9.0.0 เท่านั้น)
  2. จาก Xcode ให้ไปที่ "File > แพ็กเกจ > อัปเดตเป็นเวอร์ชันล่าสุดของแพ็กเกจ"
  3. หากต้องการยืนยันการติดตั้ง ให้ไปที่ส่วนการอ้างอิงแพ็กเกจของ Project Navigator เพื่อยืนยันแพ็กเกจและเวอร์ชันของแพ็กเกจ

หากต้องการนำทรัพยากร Dependency ของ Navigation SDK ที่มีอยู่ออกโดยใช้ CocoaPods ให้ทำตามขั้นตอนต่อไปนี้

  1. ปิดพื้นที่ทำงาน Xcode เปิดเทอร์มินัลและเรียกใช้คำสั่งต่อไปนี้
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. นำ Podfile, Podfile.resolved และ Xcode workspace หากคุณไม่ได้ใช้สำหรับวัตถุประสงค์อื่นนอกเหนือจาก CocoaPods

ในการนำ Navigation SDK สำหรับ iOS ที่มีอยู่ออกด้วยตนเอง ให้ทำตามขั้นตอนต่อไปนี้
  1. จากการตั้งค่าการกำหนดค่าโปรเจ็กต์ Xcode ให้ค้นหา Frameworks, Libraries และเนื้อหาแบบฝัง ใช้เครื่องหมายลบ(-)เพื่อนำเฟรมเวิร์กต่อไปนี้ออก
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  2. จากไดเรกทอรีระดับบนสุดของโปรเจ็กต์ Xcode ให้นำ GoogleMaps ออก

CocoaPods

Navigation SDK สำหรับ iOS มีให้บริการเป็น พ็อด CocoaPods CocoaPods เป็นผู้จัดการทรัพยากร Dependency แบบโอเพนซอร์สของ Swift และ Objective-C โปรเจ็กต์ Cocoa

หากยังไม่มีเครื่องมือ CocoaPods โปรดติดตั้งใน macOS ภายในวันที่ โดยใช้คำสั่งต่อไปนี้จากเทอร์มินัล โปรดดูรายละเอียดที่ CocoaPods คู่มือเริ่มต้นใช้งาน

sudo gem install cocoapods

สร้าง Podfile สำหรับ Navigation SDK สำหรับ iOS และใช้ เพื่อติดตั้ง API และทรัพยากร Dependency:

  1. หากยังไม่มีโปรเจ็กต์ Xcode โปรดสร้างโปรเจ็กต์ในตอนนี้และบันทึกไว้ใน ในเครื่องของคุณ หากคุณเพิ่งเริ่มใช้การพัฒนาซอฟต์แวร์ iOS ให้ทำดังนี้
    1. สร้างโปรเจ็กต์ใหม่
    2. เลือก iOS > เทมเพลตแอป
    3. บนหน้าจอตัวเลือกโปรเจ็กต์ ให้ทำดังนี้
      1. ป้อนชื่อโปรเจ็กต์
      2. บันทึกค่าในช่องตัวระบุแพ็กเกจ คุณใช้ค่าดังกล่าวเพื่อจำกัดคีย์ API ได้ที่ด้านล่าง
      3. ตั้งค่าโปรเจ็กต์ Interface เป็น Storyboard
      4. ตั้งค่าภาษาเป็น Swift หรือ Objective-C
  2. สร้างไฟล์ชื่อ Podfile ในไดเรกทอรีโปรเจ็กต์ ช่วงเวลานี้ จะเป็นตัวกำหนดทรัพยากร Dependency ของโปรเจ็กต์
  3. แก้ไข Podfile และเพิ่มทรัพยากร Dependency ต่างๆ ควบคู่ไปกับ เวอร์ชัน นี่คือตัวอย่างที่มีทรัพยากร Dependency ที่จำเป็น Navigation SDK สำหรับ iOS # ข้อมูลอ้างอิงการติดตั้ง CocoaPods #
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '9.1.0'
    end
            
    โปรดเรียกใช้ pod outdated เป็นประจำเพื่อตรวจหาเวอร์ชันใหม่กว่า เวอร์ชันต่างๆ หากจำเป็น ให้อัปเกรด เป็นเวอร์ชันล่าสุด
  4. บันทึก Podfile
  5. เปิดเทอร์มินัลและไปที่ไดเรกทอรีที่มี Podfile:

    cd <path-to-project>
  6. เรียกใช้คำสั่ง pod install การดำเนินการนี้จะติดตั้ง API ที่ระบุใน Podfile พร้อมกับทรัพยากร Dependency ทั้งหมด

    pod install
  7. ปิด Xcode จากนั้นเปิด (ดับเบิลคลิก) โปรเจ็กต์ของคุณ .xcworkspace ไฟล์เพื่อเปิด Xcode จากนี้เป็นต้นไป คุณต้องใช้ไฟล์ .xcworkspace เพื่อเปิดโปรเจ็กต์

หากต้องการอัปเดต API สำหรับโปรเจ็กต์ที่มีอยู่ ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดเทอร์มินัลและไปที่ไดเรกทอรีโปรเจ็กต์ที่มี Podfile
  2. เรียกใช้คำสั่ง pod update การดำเนินการนี้จะอัปเดต API ทั้งหมด ที่ระบุไว้ใน Podfile เป็นเวอร์ชันล่าสุด

การติดตั้งด้วยตนเอง

คู่มือนี้จะแสดงวิธีเพิ่ม XCFrameworks ด้วยตนเองที่มีองค์ประกอบ Navigation SDK สำหรับ iOS และ Maps SDK สำหรับ iOS ไปยังโปรเจ็กต์และกำหนดการตั้งค่าบิลด์ใน Xcode XCFramework เป็นแพ็กเกจไบนารีที่คุณใช้ได้ในหลายแพลตฟอร์ม รวมถึงเครื่องที่ใช้ชิปเซ็ต M1

ทำตามขั้นตอนต่อไปนี้เพื่อติดตั้ง XCFrameworks สำหรับ Navigation SDK สำหรับ iOS และ Maps SDK สำหรับ iOS

  1. ดาวน์โหลดไบนารี SDK และไฟล์ทรัพยากรต่อไปนี้
  2. เปิด Xcode และเปิดโปรเจ็กต์ที่มีอยู่หรือสร้างโปรเจ็กต์ใหม่ หากเพิ่งเริ่มใช้ iOS ให้สร้างโปรเจ็กต์ใหม่และเลือก เทมเพลตแอป iOS
  3. นำการอ้างอิงแผนที่ การนำทาง และ Places ที่มีอยู่ทั้งหมดออกจากโครงการ
  4. ลาก XCFrameworks ต่อไปนี้ลงในโปรเจ็กต์ของคุณภายใต้ เฟรมเวิร์ก ไลบรารี และเนื้อหาที่ฝังเพื่อติดตั้งทั้ง Maps และ Navigation SDK (เมื่อได้รับข้อความแจ้ง ให้เลือกคัดลอกรายการหากจำเป็น) ดังนี้
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. ลาก GoogleMaps.bundle จาก GoogleMapsResources ที่คุณดาวน์โหลด ในไดเรกทอรีระดับบนสุดของโปรเจ็กต์ Xcode เมื่อได้รับข้อความแจ้ง ตรวจสอบว่าได้เลือกคัดลอกรายการหากจำเป็น
  6. ลาก GoogleNavigation.bundle จาก GoogleNavigationResources ที่คุณดาวน์โหลด ในไดเรกทอรีระดับบนสุดของโปรเจ็กต์ Xcode เมื่อได้รับข้อความแจ้ง ให้ตรวจสอบว่า มีการเลือกคัดลอกรายการไปยังโฟลเดอร์ของกลุ่มปลายทาง
  7. เลือกโปรเจ็กต์จาก Project Navigator แล้วเลือก ของแอปพลิเคชันเป้าหมาย
  8. เปิดแท็บสร้างระยะ และภายใน ลิงก์ไบนารีกับไลบรารี เพิ่มเฟรมเวิร์กและไลบรารีต่อไปนี้
    • Accelerate.framework
    • AudioToolbox.framework
    • AVFoundation.framework
    • Contacts.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libxml2.tbd
    • libz.tbd
    • Metal.framework
    • OpenGLES.framework
    • QuartzCore.framework
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
    • UserNotifications.framework
    • WebKit.framework
  9. ในเป้าหมายของแอปพลิเคชัน ให้เลือกแท็บ Capabilities เปิดโหมดพื้นหลัง และเปิดใช้โหมดต่อไปนี้
    • เสียง, AirPlay และการแสดงภาพซ้อนภาพ
    • การอัปเดตตำแหน่ง
  10. เลือกโปรเจ็กต์แทนเป้าหมายเฉพาะ แล้วเปิด Build การตั้งค่า ในส่วนแฟล็กอื่นๆ ของ Linker เพิ่ม ‑ObjC สำหรับทั้ง debug และ release หากไม่เห็นการตั้งค่าเหล่านี้ ให้เปลี่ยนตัวกรองในส่วน แถบสร้างการตั้งค่าจากพื้นฐานเป็นทั้งหมด
  11. เปิด Info.plist แล้วเพิ่มคู่คีย์-ค่าต่อไปนี้
    • คีย์: NSLocationWhenInUseUsageDescription (ความเป็นส่วนตัว - ตำแหน่งเมื่อใช้งานอยู่)
      ค่า: "แอปนี้ต้องการสิทธิ์ในการใช้ตำแหน่งของคุณสำหรับการนำทางแบบเลี้ยวต่อเลี้ยว"
    • คีย์: NSLocationAlwaysAndWhenInUseUsageDescription (ความเป็นส่วนตัว - ตำแหน่งเสมอและเมื่อไม่ได้ใช้งาน)
      ค่า: "แอปนี้ต้องการสิทธิ์ในการใช้ตำแหน่งของคุณสำหรับการนำทางแบบเลี้ยวต่อเลี้ยว"

ขั้นตอนที่ 3: ตรวจสอบไฟล์ Manifest ด้านความเป็นส่วนตัวของ Apple

Apple ต้องการรายละเอียดความเป็นส่วนตัวของแอปสำหรับแอปใน App Store ไปที่หน้ารายละเอียดความเป็นส่วนตัวของ Apple App Store เพื่อดูข้อมูลอัปเดตและข้อมูลเพิ่มเติม

ไฟล์ Manifest ด้านความเป็นส่วนตัวของ Apple จะรวมอยู่ในแพ็กเกจทรัพยากรของ SDK หากต้องการตรวจสอบว่าไฟล์ Manifest สำหรับความเป็นส่วนตัวรวมอยู่ในไฟล์แล้ว และต้องการตรวจสอบเนื้อหา ให้สร้างที่เก็บถาวรของแอปแล้วสร้างรายงานความเป็นส่วนตัวจากที่เก็บถาวร

ขั้นตอนที่ 4: เพิ่มคีย์ API ลงในโปรเจ็กต์

ตัวอย่างต่อไปนี้แสดงวิธีเพิ่มคีย์ API ลงในโปรเจ็กต์ใน Xcode

Swift

เพิ่มคีย์ API ลงใน AppDelegate.swift ดังนี้

  1. เพิ่มคำสั่งการนำเข้าต่อไปนี้
    import GoogleMaps
    import GoogleNavigation
  2. เพิ่มสิ่งต่อไปนี้ใน application(_:didFinishLaunchingWithOptions:) วิธีการ:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

เพิ่มคีย์ API ลงใน AppDelegate.m ดังนี้

  1. เพิ่มคำสั่งการนำเข้าต่อไปนี้
    @import GoogleMaps;
    @import GoogleNavigation;
  2. เพิ่มสิ่งต่อไปนี้ใน application:didFinishLaunchingWithOptions: วิธีการ:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

ขั้นตอนที่ 5: เพิ่มแผนที่

โค้ดนี้จะสาธิตวิธีเพิ่มแผนที่อย่างง่ายลงใน ViewController ที่มีอยู่ รวมถึงการตั้งค่าเบื้องต้นบางอย่างสำหรับการนำทาง

ก่อนที่จะเปิดใช้การนำทางได้ ผู้ใช้ต้องยอมรับข้อกำหนดและ หากต้องการแจ้งผู้ใช้ ให้โทร GMSNavigationServices.showTermsAndConditionsDialogIfNeeded() จากนั้นตรวจสอบเพื่อ จะดูว่าข้อกำหนดได้รับการยอมรับหรือยัง หากผู้ใช้ปฏิเสธข้อกำหนด mapView.isNavigationEnabled = true ไม่มีผลและ mapView.navigator มีค่า ศูนย์

Swift

import UIKit
import GoogleNavigation

class ViewController: UIViewController {

  var mapView: GMSMapView!
  var locationManager: CLLocationManager!

  override func loadView() {
    locationManager = CLLocationManager()
    locationManager.requestAlwaysAuthorization()

    let options = GMSMapViewOptions()
    options.camera = camera
    options.frame = .zero
    mapView = GMSMapView(options: options)

    // Show the terms and conditions.
    let termsAndConditionsOptions = GMSNavigationTermsAndConditionsOptions(companyName: "Ride Share Co.")

    GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(with: termsAndConditionsOptions) { termsAccepted in
      if termsAccepted {
        // Enable navigation if the user accepts the terms.
        self.mapView.isNavigationEnabled = true
      } else {
        // Handle the case when the user rejects the terms and conditions.
      }
    }

    view = mapView
  }

  // TODO: Add navigation code.

}

Objective-C

#import "ViewController.h"
@import GoogleNavigation;

@interface ViewController ()
@end

@implementation ViewController
GMSMapView *_mapView;
CLLocationManager *_locationManager;

-   (void)loadView {

  _locationManager = [[CLLocationManager alloc] init];
  [_locationManager requestAlwaysAuthorization];

  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.67
                                                          longitude:-122.20
                                                               zoom:14];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.frame = CGRectZero;
  options.camera = camera;
  options.mapID = mapID;
  _mapView = [[GMSMapView alloc] initWithOptions:options];

  // Show the terms and conditions.
  GMSNavigationTermsAndConditionsOptions *termsAndConditionsOptions = [[GMSNavigationTermsAndConditionsOptions alloc] initWithCompanyName:@"Ride Sharing Co."];
  
  [GMSNavigationServices
    showTermsAndConditionsDialogIfNeededWithOptions:termsAndConditionsOptions
    callback:^(BOOL termsAccepted) {
     if (termsAccepted) {
       // Enable navigation if the user accepts the terms.
       _mapView.navigationEnabled = YES;
     } else {
       // Handle the case when the user rejects the terms and conditions.
     }
   }];

  self.view = _mapView;
}

// TODO: Add navigation code.

@end

เรียกใช้แอปพลิเคชัน คุณควรจะเห็นแผนที่ที่มีศูนย์กลางอยู่ที่เคิร์กแลนด์ รัฐวอชิงตัน

หากแผนที่ไม่ปรากฏ ให้ลองทำตามขั้นตอนต่อไปนี้

  • ตรวจสอบว่าคุณได้ระบุคีย์ API ที่ถูกต้อง
  • ตรวจสอบว่าเปิดใช้ NavSDK ใน Cloud Console แล้ว
  • หากติดตั้ง Nav SDK แล้ว แต่โปรเจ็กต์ของคุณไม่ได้ใช้ Nav SDK API ให้นำออกจากไบนารีของคุณ

หากคุณเป็นลูกค้าที่ใช้บริการระบบเคลื่อนที่

หากคุณเป็นลูกค้าบริการระบบเคลื่อนที่ โปรดดูข้อมูลเกี่ยวกับการเรียกเก็บเงิน ในเอกสารประกอบของ Mobility ดูข้อมูลเพิ่มเติมเกี่ยวกับการบันทึก ธุรกรรม โปรดดู ตั้งค่าการเรียกเก็บเงิน ดูวิธีเพิ่มรหัสธุรกรรมลงในการใช้งาน Navigation SDK ได้ที่ เชื่อมโยงการใช้บริการกับธุรกรรมเกี่ยวกับการเคลื่อนไหว

ขั้นตอนถัดไป

ตอนนี้คุณมีคีย์ API และโปรเจ็กต์ Xcode แล้ว คุณจะสร้างและเรียกใช้แอปได้ Navigation SDK สำหรับ iOS มีบทแนะนำที่จะช่วยคุณ เริ่มต้นใช้งานได้เลย โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อต่อไปนี้