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

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

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

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

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

  • Xcode เวอร์ชัน 16.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 แล้วไปที่File > Add Package Dependencies
  2. ป้อน https://github.com/googlemaps/ios-maps-sdk เป็น URL แล้วกด Enter เพื่อดึงแพ็กเกจ แล้วคลิก "เพิ่มแพ็กเกจ"
  3. หากต้องการติดตั้ง version ที่เฉพาะเจาะจง ให้ตั้งค่าฟิลด์กฎการขึ้นต่อกันเป็นตัวเลือกใดตัวเลือกหนึ่ง ที่อิงตามเวอร์ชัน สำหรับโปรเจ็กต์ใหม่ เราขอแนะนำให้ระบุเวอร์ชันล่าสุดและ ใช้ตัวเลือก "เวอร์ชันที่แน่นอน" เมื่อดำเนินการเสร็จแล้ว ให้คลิก "เพิ่มแพ็กเกจ"

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

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

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

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

หากต้องการนำทรัพยากร 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. จากไดเรกทอรีระดับบนสุดของโปรเจ็กต์ Xcode ให้นำ GoogleMaps bundle ออก

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

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

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

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

CocoaPods

Maps SDK สำหรับ iOS พร้อมใช้งานเป็น Pod ของ CocoaPods CocoaPods เป็นเครื่องมือจัดการทรัพยากร Dependency แบบโอเพนซอร์สสำหรับโปรเจ็กต์ Swift และ Objective-C Cocoa

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

sudo gem install cocoapods

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

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

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

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

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

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

ขั้นตอนที่ 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 ที่ API ใช้

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

หากต้องการประกาศรูปแบบ URL ที่ใช้โดย 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 มีบทแนะนำและแอปตัวอย่างมากมายที่จะช่วยให้คุณ เริ่มต้นใช้งานได้ ดูรายละเอียดเพิ่มเติมได้ที่