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

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

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

CocoaPods

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

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

sudo gem install cocoapods

สร้าง Podfile สำหรับ Maps SDK สำหรับ iOS และใช้ ไฟล์นี้เพื่อติดตั้ง API และทรัพยากร Dependency ของ API

  1. หากยังไม่มีโปรเจ็กต์ Xcode ให้สร้างโปรเจ็กต์ตอนนี้และบันทึกลงใน เครื่องของคุณ หากคุณเพิ่งเริ่มพัฒนาแอป iOS ให้ทำดังนี้
    1. สร้างโปรเจ็กต์ใหม่
    2. เลือกเทมเพลต iOS > แอป
    3. ในหน้าจอตัวเลือกโปรเจ็กต์ ให้ทำดังนี้
      1. ป้อนชื่อโปรเจ็กต์
      2. บันทึกค่าของช่องรหัสชุดซอฟต์แวร์ คุณสามารถใช้ค่านั้นเพื่อจำกัดคีย์ API ด้านล่าง
      3. ตั้งค่าอินเทอร์เฟซ ของโปรเจ็กต์เป็น Storyboard
      4. ตั้งค่าภาษา เป็น Swift หรือ Objective-C
  2. สร้างไฟล์ชื่อ Podfile ในไดเรกทอรีโปรเจ็กต์ ไฟล์นี้จะกำหนดทรัพยากร Dependency ของโปรเจ็กต์
  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.14.0'
    end
    เรียกใช้ pod outdated เป็นประจำเพื่อตรวจหาเมื่อมีเวอร์ชันใหม่กว่า เพื่อให้แน่ใจว่าคุณใช้เวอร์ชันล่าสุดอยู่เสมอ หากจำเป็น ให้อัปเกรดเป็นเวอร์ชันล่าสุด
  4. บันทึก Podfile
  5. เปิดเทอร์มินัลและไปที่ไดเรกทอรีที่มี Podfile

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

    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 (ไม่บังคับ): ตรวจสอบไฟล์ Privacy Manifest ของ Apple

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

ไฟล์ Privacy Manifest ของ Apple จะรวมอยู่ในบันเดิลทรัพยากรสำหรับ SDK หากต้องการยืนยันว่าได้รวมไฟล์ Privacy 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 มีบทแนะนำและแอปตัวอย่างมากมายที่จะช่วยให้คุณเริ่มต้นใช้งานได้ ดูรายละเอียดเพิ่มเติมได้ที่