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

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

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

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

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

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

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

Swift Package Manager

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

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

  1. เปิด Xcode project หรือ workspace แล้วไปที่ไฟล์ > เพิ่ม Package Dependency
  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 ให้ไปที่ "ไฟล์ > แพ็กเกจ > อัปเดตเป็นเวอร์ชันล่าสุดของแพ็กเกจ"
  3. หากต้องการตรวจสอบการติดตั้ง ให้ไปที่ส่วนแพ็กเกจที่ต้องพึ่งพาของเครื่องมือนำทางโปรเจ็กต์เพื่อยืนยันแพ็กเกจและเวอร์ชัน

หากต้องการนําทรัพยากร 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. ตั้งค่าอินเทอร์เฟซของโปรเจ็กต์เป็นสตอรี่บอร์ด
      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
    • SystemConfiguration.framework
    • UIKit.framework
  8. เลือกโปรเจ็กต์แทนเป้าหมายที่เจาะจง แล้วเปิดแท็บการตั้งค่าการสร้าง ในส่วนการลิงก์ - ทั่วไป -> Flag อื่นๆ ของ Linker ให้เพิ่ม -ObjC ลงใน "แก้ไขข้อบกพร่อง" และ "รุ่น" หากไม่เห็นการตั้งค่าเหล่านี้ ให้เปลี่ยนตัวกรองในแถบการตั้งค่าการสร้างจากพื้นฐานเป็นทั้งหมด

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

CocoaPods

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

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

sudo gem install cocoapods

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

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

ขั้นตอนที่ 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 เพื่อดูข้อมูลอัปเดตและข้อมูลเพิ่มเติม

ไฟล์ Manifest ความเป็นส่วนตัวของ Apple จะรวมอยู่ในแพ็กเกจทรัพยากรของ 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` ใน IDE

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