แอปพลิเคชัน iOS ตัวอย่างนี้ใช้ Google Home APIs ใช้คู่มือนี้เพื่อสร้าง และเรียกใช้แอปเป็นครั้งแรก
ข้อกำหนดเบื้องต้น
ตรวจสอบว่าคุณมีคุณสมบัติตรงตามข้อกำหนดขั้นต่ำในการใช้ Home API สำหรับ iOS
หากต้องการสร้างและติดตั้งแอปตัวอย่าง คุณจะต้องมีคอมพิวเตอร์ที่ติดตั้ง Xcode เวอร์ชัน 15.3 ขึ้นไป
หากต้องการทดสอบแอป คุณจะต้องมีสิ่งต่อไปนี้
- บัญชี Google
- Apple ID ที่ลงทะเบียนในโปรแกรมสำหรับนักพัฒนาซอฟต์แวร์ของ Apple เพื่อสร้างไฟล์การกำหนดค่าอุปกรณ์จริง หากยังไม่ได้สร้าง การลงทะเบียนจะมีค่าใช้จ่ายเพิ่มเติมและอาจใช้เวลาถึง 48 ชั่วโมงจึงจะเสร็จสมบูรณ์
- อุปกรณ์ iOS (ไม่ใช่เครื่องจำลอง) ที่ใช้ iOS 16.4 ขึ้นไปซึ่งตั้งค่าด้วยบัญชีทดสอบ
- เครือข่าย Wi-Fi
- ฮับของ Google ที่รองรับ Home APIs
- Thread Border Router หากอุปกรณ์ต้องใช้ Thread แต่ฮับไม่มีความสามารถดังกล่าว
- ประเภทอุปกรณ์ที่รองรับอย่างน้อย 1 ประเภท
สำหรับการพัฒนา คุณจะต้องมี Mac ที่มีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้
- macOS Sonoma ขึ้นไป
- Xcode 15.3 ขึ้นไป
สร้างไฟล์การกำหนดค่าการติดตั้งใช้งาน Apple
ก่อนอื่น แอปต้องเปิดใช้ความสามารถ App Attest จึงไม่สามารถนำไปใช้กับอุปกรณ์จำลองได้ โดยคุณต้องสร้าง โปรไฟล์การจัดสรรที่มีสิทธิ์ App Attest
ประการที่ 2 ต้องเปิดใช้กลุ่มแอปเพื่อการสื่อสารระหว่างแอปกับ MatterExtension
โดยคุณต้องลงทะเบียนตัวระบุกลุ่มแอป
ดูรายละเอียดเพิ่มเติมได้ที่หัวข้อสร้างโปรไฟล์การจัดสรรสำหรับการพัฒนา ในโปรไฟล์การจัดสรรของ Apple
ต่อไปนี้คือขั้นตอนขั้นต่ำที่จำเป็นในการติดตั้งใช้งานแอป
- สร้างตัวระบุกลุ่มแอปสำหรับแอปของคุณเพื่อสื่อสารกับ
MatterExtension
- ลงชื่อเข้าใช้ พอร์ทัลนักพัฒนาแอปของ Apple
- เพิ่มตัวระบุกลุ่มแอป เช่น อาจจัดรูปแบบเป็น
group.com.company.commissioning
- ลงทะเบียนอุปกรณ์ทดสอบกับบัญชีนักพัฒนาแอป
สร้างโปรไฟล์สำหรับเป้าหมายแอป
- กำหนดตัวระบุแพ็กเกจแอปพลิเคชันสำหรับแอป
ตัวระบุควรไม่ซ้ำกันและอธิบายได้ เช่น อาจจัดรูปแบบเป็น
com.company.HomeApiSample
ระบบจะใช้ตัวระบุนี้ ตลอดส่วนที่เหลือของส่วนนี้ - ลงทะเบียน App ID เมื่อได้รับข้อความแจ้ง ให้เพิ่มความสามารถ App Attest และกลุ่มแอป
แก้ไขรหัสแอปที่สร้างขึ้นใหม่และกำหนดค่าความสามารถของกลุ่มแอป เพื่อเพิ่มตัวระบุกลุ่มแอปที่ลงทะเบียน
สร้างโปรไฟล์การจัดสรรสำหรับการพัฒนา เพื่อการพัฒนาแอป เชื่อมโยงกับรหัสแอปที่สร้างขึ้นใหม่ และอุปกรณ์ทดสอบที่เลือก ตรวจสอบว่าคุณมีใบรับรองนักพัฒนาแอปเพื่อลงนาม ในแอป
- หากยังไม่ได้สร้าง ให้ดูวิธีการในหัวข้อสร้างใบรับรองรหัสนักพัฒนาแอป
- กำหนดตัวระบุแพ็กเกจแอปพลิเคชันสำหรับแอป
ตัวระบุควรไม่ซ้ำกันและอธิบายได้ เช่น อาจจัดรูปแบบเป็น
สร้างโปรไฟล์สำหรับเป้าหมาย
MatterExtension
- กำหนดตัวระบุ App Bundle สำหรับ
MatterExtension
ตัวระบุควรสืบทอดมาจากตัวระบุแอป เช่น อาจจัดรูปแบบเป็นcom.company.HomeApiSample.MatterExtension
- ลงทะเบียน App ID เมื่อได้รับข้อความแจ้ง ให้เพิ่มความสามารถของกลุ่มแอป
- แก้ไข App ID ที่สร้างขึ้นใหม่และกําหนดค่าความสามารถของกลุ่มแอป เพื่อเพิ่มตัวระบุกลุ่มแอปที่ลงทะเบียนซึ่งสร้างขึ้นในขั้นตอนก่อนหน้า
- สร้างโปรไฟล์การจัดสรรสำหรับการพัฒนา
สำหรับ
MatterExtension
- กำหนดตัวระบุ App Bundle สำหรับ
สร้างรหัสไคลเอ็นต์ OAuth และเปิดใช้ Home API
แอปของคุณต้องมีรหัสไคลเอ็นต์ OAuth เพื่อระบุตัวตนกับแบ็กเอนด์การตรวจสอบสิทธิ์ของ Google สำหรับ iOS และแอป คุณต้องกำหนดค่า แอปพลิเคชันรหัสไคลเอ็นต์ OAuth ประเภท เป็น iOS นอกจากนี้ แอปยังจะ เรียกใช้ Home API ด้วย หากต้องการเปิดใช้ฟังก์ชันนี้ คุณต้องเปิดใช้ API ในGoogle Cloud โปรเจ็กต์
สร้างรหัสไคลเอ็นต์ OAuth
- ใน Google Cloud Console ให้ไปที่แดชบอร์ดตัวเลือกโปรเจ็กต์ แล้วเลือกโปรเจ็กต์ที่ต้องการใช้เพื่อสร้างข้อมูลเข้าสู่ระบบ OAuth
- ไปที่หน้า API และบริการโดยคลิกปุ่มเมนูที่ด้านซ้ายบน > ดูผลิตภัณฑ์ทั้งหมด > API และบริการ
- ในเมนูการนำทาง ให้คลิกข้อมูลเข้าสู่ระบบ
หากยังไม่ได้กำหนดค่าหน้าจอขอความยินยอมสำหรับโปรเจ็กต์ Google Cloud นี้ ปุ่มกำหนดค่าหน้าจอขอความยินยอมจะปรากฏขึ้น ในกรณีนี้ ให้กำหนดค่าหน้าจอขอความยินยอมโดยใช้ขั้นตอนต่อไปนี้ หากกำหนดค่าหน้าจอคำยินยอมของ OAuth แล้วและสถานะการเผยแพร่เป็นกำลังทดสอบ ให้ตรวจสอบว่าได้เพิ่มบัญชีทดสอบที่จะใช้ลงในกลุ่มผู้ใช้ทดสอบแล้ว หรือหากระบบไม่ขอ ให้ดำเนินการต่อในขั้นตอนถัดไป
- เลือกภายในหรือภายนอกตามกรณีการใช้งาน แล้วคลิกสร้าง แผงหน้าจอขอความยินยอม OAuth จะปรากฏขึ้น
- ป้อนข้อมูลในหน้าข้อมูลแอปตามวิธีการบนหน้าจอ แล้วคลิกบันทึกและดำเนินการต่อ บานหน้าต่างขอบเขต จะแสดงขึ้น
- คุณไม่จำเป็นต้องเพิ่มขอบเขตใดๆ จึงคลิกบันทึกและดำเนินการต่อได้เลย แผงผู้ใช้ทดสอบจะปรากฏขึ้น
- หากเลือกสร้างหน้าจอขอความยินยอมภายใน คุณต้องเพิ่มผู้ใช้เพื่อ ทดสอบการเข้าถึงแอป คลิกเพิ่มผู้ใช้ แผงเพิ่มผู้ใช้จะปรากฏขึ้น ผู้ใช้ทดสอบมีสิทธิ์ให้สิทธิ์ในแอปของคุณ ในช่องว่าง ให้เพิ่มอีเมลบัญชี Google อย่างน้อย 1 รายการ แล้วคลิกเพิ่ม
- คลิกบันทึกและต่อไป บานหน้าต่างสรุปจะแสดงขึ้น
- ตรวจสอบข้อมูลหน้าจอขอความยินยอม OAuth แล้วคลิกกลับไปที่ แดชบอร์ด
ในแผงเมนูด้านซ้าย ให้คลิกข้อมูลเข้าสู่ระบบเพื่อสร้างรหัสไคลเอ็นต์ OAuth
- คลิกปุ่มสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกรหัสไคลเอ็นต์ OAuth
- ในส่วนประเภทแอปพลิเคชัน ให้เลือก iOS
- ป้อนรหัสชุดซอฟต์แวร์พร้อมตัวระบุแอปและรหัสทีมนักพัฒนาแอปของ Apple ช่องอื่นๆ ไม่บังคับและเว้นว่างไว้ได้
- คลิกสร้าง แล้วจดรหัสไคลเอ็นต์ที่สร้างขึ้นหรือ ดาวน์โหลด PLIST ซึ่งจะใช้ในภายหลังเพื่อเปิดใช้ฟังก์ชันการทำงานของโฟลว์สิทธิ์ ดูข้อมูลเพิ่มเติมได้ที่ส่วนสร้างข้อมูลเข้าสู่ระบบ การให้สิทธิ์
- คลิกปุ่มสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกรหัสไคลเอ็นต์ OAuth
เปิดใช้ Home API
เปิดใช้การเข้าถึง Home API
- ในแท็บ API และบริการ ให้คลิก API และบริการที่เปิดใช้
- คลิกเปิดใช้ API และบริการที่ด้านบนของหน้า
- ค้นหา
HOME API
แล้วเลือก - ในหน้ารายละเอียด Home API ให้คลิกเปิดใช้
ดาวน์โหลดซอร์สโค้ด
ซอร์สโค้ด สำหรับแอปตัวอย่างพร้อมให้บริการบน GitHub
ไปที่ตำแหน่งที่ต้องการบันทึกโปรเจ็กต์ แล้วโคลนโปรเจ็กต์โดยทำดังนี้
git clone https://github.com/google-home/google-home-api-sample-app-ios.git
หากต้องการโหลดโปรเจ็กต์ใน Xcode ให้คลิกไฟล์ > เปิด แล้วเลือก
GoogleHomeAPISampleIOS.xcodeproj
ในรูทของที่เก็บที่โคลน
ตั้งค่า SDK
โปรเจ็กต์แอปตัวอย่างต้องมีข้อมูลเพิ่มเติมบางอย่างเพื่อสร้าง ซึ่งรวมถึงการเพิ่มไฟล์เฟรมเวิร์ก SDK ในเครื่อง การป้อนข้อมูลตัวระบุบัญชีนักพัฒนาแอป และการป้อนรหัสไคลเอ็นต์ OAuth
สร้างแอป
หากต้องการดาวน์โหลด Home APIs iOS SDK คุณต้องลงชื่อเข้าใช้ Google Home Developers ก่อน
กำหนดค่าโปรเจ็กต์ Xcode สำหรับแอปตัวอย่าง
ในแผงการนำทางของ Xcode ให้เลือกไฟล์
GoogleHomeAPISampleIOS
เพื่อแก้ไขการกำหนดค่าโปรเจ็กต์คลิกแท็บทั่วไปที่ด้านบน แล้วเลือกเป้าหมาย
GoogleHomeAPISampleIOS
ทางด้านซ้ายเลื่อนลงจนกว่าจะเห็นส่วนเฟรมเวิร์ก ไลบรารี และเนื้อหาที่ฝัง คุณควรเห็นเฟรมเวิร์ก Home API 2 รายการ
ในคอลัมน์ฝัง ให้เลือกฝังและลงนามสำหรับ
GoogleHomeSDK.xcframework
ส่วนเฟรมเวิร์กอื่นๆGoogleHomeTypes.xcframework
ควรปล่อยไว้เป็นห้ามฝังคลิกไอคอน + ที่ด้านล่างของรายการ
เมื่อมีข้อความแจ้ง ให้ค้นหา
SafariServices.framework
แล้วคลิกเพิ่ม ตรวจสอบว่าได้ตั้งค่าคอลัมน์ฝังเป็นห้ามฝังสำหรับ รายการนี้แล้วคลิก
MatterAddDeviceExtension
ในส่วนเป้าหมายเพื่อแก้ไข เป้าหมายเลื่อนลงจนกว่าจะเห็นส่วนเฟรมเวิร์กและไลบรารี คุณควรเห็น
GoogleHomeSDK.xcframework
แสดงอยู่ในคอลัมน์ฝัง ให้เลือกห้ามฝัง
กำหนดค่ารหัสไคลเอ็นต์ของนักพัฒนาแอปและ OAuth ดังนี้
- ในแผงการนำทาง ให้มองหาโฟลเดอร์ GoogleHomeAPISampleIOS แล้ว เปิดไฟล์ Info.plist เพื่อแก้ไข
ในไฟล์ Info.plist ให้ป้อน GIDClientID ด้วยรหัสไคลเอ็นต์ OAuth (ดูส่วนตั้งค่าความยินยอมของ OAuth) หมายเลขโปรเจ็กต์ Cloud ที่สอดคล้องกับโปรเจ็กต์ Cloud และ GIDTeamID ด้วยรหัสทีมของนักพัฒนาแอป Apple ของบัญชีนักพัฒนาแอปที่ใช้ในกระบวนการลงทะเบียน OAuth
เพิ่มความสามารถในการรับรองแอป
- ในแผงการนำทางของ Xcode ให้เลือกไฟล์โปรเจ็กต์
GoogleHomeAPISampleIOS
เพื่อแก้ไขการกำหนดค่าโปรเจ็กต์ - คลิกแท็บการลงนามและความสามารถที่ด้านบน แล้วเลือก
เป้าหมาย
GoogleHomeAPISampleIOS
ทางด้านซ้ายมือในส่วน เป้าหมาย - คลิก + ความสามารถ ใต้แท็บการลงนามและความสามารถ แล้วค้นหา App Attest
- คลิก App Attest เพื่อเพิ่ม หากไม่มีความสามารถนี้ในการค้นหา โปรเจ็กต์อาจเพิ่มความสามารถนี้ไปแล้ว
- ในแผงการนำทางของ Xcode ให้เลือกไฟล์โปรเจ็กต์
เพิ่มความสามารถของกลุ่มแอป
- ไปที่โปรเจ็กต์ GoogleHomeAPISampleIOS > เป้าหมาย GoogleHomeAPISampleIOS
- คลิกการลงนามและความสามารถ > + ความสามารถ
- เลือกความสามารถกลุ่มแอป
- คลิกไอคอน + ในส่วนกลุ่มแอป แล้วเพิ่มตัวระบุกลุ่มแอป สำหรับแอปที่คุณเพิ่มใน Apple Developer Portal
- ทำขั้นตอนเหล่านี้ซ้ำสำหรับเป้าหมาย MatterAddDeviceExtension เพื่อเพิ่ม เป้าหมายลงในกลุ่มแอป
อัปเดตรหัสชุดซอฟต์แวร์
- หากต้องการเรียกใช้และติดตั้งใช้งานแอปตัวอย่างในฮาร์ดแวร์โดยใช้ ใบรับรองสำหรับนักพัฒนาแอปและโปรไฟล์การจัดสรร คุณจะต้องระบุ ตัวระบุแพ็กเกจที่ไม่ซ้ำกัน ซึ่งควรเป็นตัวระบุเดียวกันกับที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบไคลเอ็นต์ OAuth (ดูด้านบน)
- ในแผงการนำทางของ Xcode ให้เลือกไฟล์โปรเจ็กต์
GoogleHomeAPISampleIOS
เพื่อแก้ไขการกำหนดค่าโปรเจ็กต์ - คลิกแท็บการลงนามและความสามารถที่ด้านบน แล้วเลือก
เป้าหมาย
GoogleHomeAPISampleIOS
ทางด้านซ้ายมือในส่วน เป้าหมาย - เลือกช่องตัวระบุแพ็กเกจในส่วนการลงนาม แล้วป้อน ตัวระบุที่ไม่ซ้ำสำหรับแอปพลิเคชัน
- เลือกหรือติดตั้งโปรไฟล์การจัดสรรที่เกี่ยวข้องกับแพ็กเกจนั้นพร้อมสิทธิ์ที่จำเป็น
- ทำขั้นตอนเหล่านี้ซ้ำสำหรับ
MatterAddDeviceExtension
เป้าหมายเพื่อป้อน ตัวระบุ Bundle สำหรับส่วนขยายและนำเข้า โปรไฟล์การจัดสรรที่ลงทะเบียน
อัปเดตตัวระบุกลุ่มแอปที่ลงทะเบียนไว้ในโค้ด
- แอปพลิเคชันต้องกําหนดค่าอินสแตนซ์ SDK เพื่อใช้
ตัวระบุกลุ่มแอปสําหรับฟีเจอร์ต่างๆ เช่น การจัดสรรอุปกรณ์ อัปเดต
แอปเพื่อใช้รหัสกลุ่มแอปที่ลงทะเบียนใน Apple Developer
Portal โดยค้นหาสตริง
HOME_API_TODO_ADD_APP_GROUP
และ แทนที่แต่ละอินสแตนซ์ด้วยรหัสกลุ่มแอป
การกำหนดค่าเหล่านี้จะอยู่ในไฟล์ต่อไปนี้
GoogleHomeAPISampleIOS.swift
เมื่อเริ่มต้น SDKRequestHandler.swift
CommissioningManager.swift
- แอปพลิเคชันต้องกําหนดค่าอินสแตนซ์ SDK เพื่อใช้
ตัวระบุกลุ่มแอปสําหรับฟีเจอร์ต่างๆ เช่น การจัดสรรอุปกรณ์ อัปเดต
แอปเพื่อใช้รหัสกลุ่มแอปที่ลงทะเบียนใน Apple Developer
Portal โดยค้นหาสตริง