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

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

บันทึกประจำรุ่นมีให้สำหรับแต่ละรุ่น

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

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

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

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

ขนาดการติดตั้ง SDK จะแตกต่างกันไป เช่น ขนาดการติดตั้ง Maps SDK สำหรับ iOS เวอร์ชัน 9.0 อยู่ที่ประมาณ 18 MB

Swift Package Manager

คุณติดตั้ง Maps SDK สำหรับ iOS ได้ผ่าน Swift Package Manager หากต้องการเพิ่ม SDK ให้ตรวจสอบว่าคุณได้นำทรัพยากร Dependency ของ Maps SDK สำหรับ iOS ที่มีอยู่ออกแล้ว

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

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

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

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

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

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

หากต้องการนำทรัพยากร Dependency ของ Maps SDK สำหรับ iOS ที่มีอยู่ซึ่งเพิ่มโดยใช้ CocoaPods ออก ให้ทำตามขั้นตอนต่อไปนี้

  1. ปิดพื้นที่ทำงาน Xcode เปิดเทอร์มินัลและเรียกใช้คำสั่งต่อไปนี้
    sudo gem install cocoapods-deintegrate cocoapods-clean
    pod deintegrate
    pod cache clean --all
  2. นำ Podfile, Podfile.resolved และ Xcode workspace ออกหากคุณไม่ได้ใช้เพื่อวัตถุประสงค์อื่นนอกเหนือจาก CocoaPods
หากต้องการนำ Maps SDK สำหรับ iOS ที่ติดตั้งด้วยตนเองออก ให้ทำตามขั้นตอนต่อไปนี้
  1. จากการตั้งค่าการกำหนดค่าโปรเจ็กต์ Xcode ให้ค้นหาเฟรมเวิร์ก ไลบรารี และเนื้อหาที่ฝัง ใช้เครื่องหมายลบ (-) เพื่อนำเฟรมเวิร์กต่อไปนี้ออก
    • GoogleMaps
    • GoogleMapsBase (สำหรับการติดตั้งเวอร์ชันก่อน 9.2.0 เท่านั้น)
    • GoogleMapsCore (เฉพาะการติดตั้งเวอร์ชันเก่ากว่า 9.2.0)
    • GoogleMapsM4B (สำหรับการติดตั้งเวอร์ชันก่อน 9.0.0 เท่านั้น)
  2. นำแพ็กเกจ GoogleMaps ออกจากไดเรกทอรีระดับบนสุดของโปรเจ็กต์ Xcode

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

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

  1. ดาวน์โหลดไบนารีและไฟล์ทรัพยากรของ SDK ต่อไปนี้
  2. แตกไฟล์เพื่อเข้าถึง XCFrameworks และทรัพยากร
  3. หากยังไม่มีโปรเจ็กต์ Xcode ให้สร้างตอนนี้และบันทึกลงในเครื่องของคุณ หากคุณเพิ่งเริ่มพัฒนา iOS ให้ทำดังนี้
    1. สร้างโปรเจ็กต์ใหม่
    2. เลือกเทมเพลต iOS > App
    3. ในหน้าจอตัวเลือกโปรเจ็กต์ ให้ทำดังนี้
      1. ป้อนชื่อโปรเจ็กต์
      2. บันทึกค่าของช่องรหัสชุดซอฟต์แวร์ คุณใช้ค่าดังกล่าวเพื่อจำกัดคีย์ API ด้านล่างได้
      3. ตั้งค่าอินเทอร์เฟซของโปรเจ็กต์เป็น Storyboard
      4. ตั้งค่าภาษาเป็น Swift หรือ Objective-C
  4. เปิดแท็บทั่วไป ลาก XCFrameworks ต่อไปนี้ลงในโปรเจ็กต์ในส่วนเฟรมเวิร์ก ไลบรารี และเนื้อหาที่ฝัง ตรวจสอบว่าได้เลือกไม่ฝัง
    • GoogleMaps.xcframework
  5. คัดลอก GoogleMaps.bundle จาก GoogleMapsResources ที่คุณดาวน์โหลดลงในไดเรกทอรีระดับบนสุดของโปรเจ็กต์ Xcode อย่าลืมเลือกคัดลอกรายการไปยังโฟลเดอร์ของกลุ่มปลายทางเมื่อได้รับข้อความแจ้ง
  6. เลือกโปรเจ็กต์จากแถบนำทางของโปรเจ็กต์ แล้วเลือกเป้าหมายของแอปพลิเคชัน
  7. เปิดแท็บ Build Phases สำหรับเป้าหมายของแอปพลิเคชัน ใน Link Binary with Libraries ให้เพิ่มเฟรมเวิร์กและไลบรารีต่อไปนี้
    • 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
    • MetricKit.framework
    • OpenGLES.framework (เฉพาะในกรณีที่คุณใช้ OpenGL)
    • QuartzCore.framework
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. เลือกโปรเจ็กต์แทนเป้าหมายที่เฉพาะเจาะจง แล้วเปิดแท็บ Build Settings ในส่วน Linking - General -> Other Linker Flags ให้เพิ่ม -ObjC ลงใน "Debug" และ "Release" หากไม่เห็นการตั้งค่าเหล่านี้ ให้เปลี่ยนตัวกรองในแถบการตั้งค่าบิลด์จากพื้นฐานเป็นทั้งหมด

  9. หากต้องการติดตั้ง Places SDK สำหรับ iOS XCFramework โปรดดูหัวข้อเริ่มต้นใช้งาน Places SDK สำหรับ iOS

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

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

ในตัวอย่างต่อไปนี้ ให้แทนที่ YOUR_API_KEY ด้วยคีย์ API ของคุณ

Swift

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

  1. เพิ่มคำสั่งนำเข้าต่อไปนี้
    import GoogleMaps
  2. เพิ่มโค้ดต่อไปนี้ลงในเมธอด application(_:didFinishLaunchingWithOptions:) โดยใช้คีย์ API ของคุณ
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. หากคุณใช้ Places API ด้วย ให้เพิ่มคีย์อีกครั้งตามที่แสดงที่นี่
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

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

  1. เพิ่มคำสั่งนำเข้าต่อไปนี้
    @import GoogleMaps;
  2. เพิ่มโค้ดต่อไปนี้ลงในเมธอด application:didFinishLaunchingWithOptions: โดยใช้คีย์ API ของคุณ
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. หากคุณใช้ Places API ด้วย ให้เพิ่มคีย์อีกครั้งตามที่แสดงที่นี่
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

ขั้นตอนที่ 4 (ไม่บังคับ): ตรวจสอบไฟล์ Apple Privacy Manifest

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

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

ขั้นตอนที่ 5 (ไม่บังคับ): ประกาศ URL Scheme ที่ API ใช้

ตั้งแต่ iOS 9 และ Xcode 7 เป็นต้นไป แอปจะประกาศ URL Scheme ที่ต้องการเปิดโดยระบุ Scheme ในไฟล์ Info.plist ของแอป Maps SDK สำหรับ iOS จะเปิดแอป Google Maps บนมือถือเมื่อผู้ใช้คลิกโลโก้ Google บนแผนที่ ดังนั้นแอปของคุณจึงประกาศ URL Scheme ที่เกี่ยวข้องได้

หากต้องการประกาศ URL Scheme ที่ Maps SDK สำหรับ iOS ใช้ ให้เพิ่มบรรทัดต่อไปนี้ลงใน Info.plist

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

รูปภาพต่อไปนี้แสดงการกำหนดค่าในอินเทอร์เฟซผู้ใช้ Xcode

การกำหนดค่า `LSApplicationQueriesSchemes` ใน Xcode

หากไม่มีการประกาศข้างต้น ข้อผิดพลาดต่อไปนี้อาจเกิดขึ้นเมื่อผู้ใช้แตะโลโก้ Google บนแผนที่

  • -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"

หากต้องการกำจัดข้อผิดพลาดเหล่านี้ ให้เพิ่มการประกาศลงใน Info.plist

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

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