Tạo ứng dụng mẫu iOS

Ứng dụng iOS mẫu này sử dụng Google Home API. Hãy tham khảo hướng dẫn này để tạo và chạy ứng dụng lần đầu tiên.

Điều kiện tiên quyết

Đảm bảo bạn đáp ứng các yêu cầu tối thiểu để sử dụng Home API cho iOS.

Để tạo và cài đặt ứng dụng mẫu, bạn cần có một máy tính đã cài đặt Xcode phiên bản 15.3 trở lên.

Tải Xcode xuống

Để kiểm thử ứng dụng, bạn cần:

  1. Tài khoản Google.
  2. Một Apple ID đã đăng ký Chương trình dành cho nhà phát triển của Apple để tạo tệp cấu hình thiết bị thực. Nếu chưa được tạo, thì việc đăng ký sẽ phát sinh thêm chi phí và có thể mất đến 48 giờ để hoàn tất.
  3. Một thiết bị iOS (không phải trình mô phỏng) chạy iOS 16.4 trở lên được thiết lập bằng tài khoản kiểm thử.
  4. Mạng Wi-Fi.
  5. Một trung tâm Google hỗ trợ Home API.
  6. Bộ định tuyến biên theo giao thức Thread nếu thiết bị của bạn cần giao thức Thread và trung tâm không có khả năng này.
  7. Ít nhất một loại thiết bị được hỗ trợ.

Để phát triển, bạn cần có một máy Mac đáp ứng các yêu cầu sau:

  • macOS Sonoma trở lên
  • Xcode 15.3 trở lên

Tạo tệp cấu hình triển khai của Apple

Trước tiên, ứng dụng yêu cầu bạn bật chức năng Chứng thực ứng dụng. Do đó, bạn không thể triển khai ứng dụng này cho các thiết bị mô phỏng. Bạn cần tạo một hồ sơ cấp phép có quyền App Attest.

Thứ hai, bạn cần bật Nhóm ứng dụng để giao tiếp giữa ứng dụng và MatterExtension. Bạn phải đăng ký một giá trị nhận dạng nhóm ứng dụng.

Để biết thêm thông tin, hãy xem bài viết Tạo hồ sơ cấp phép phát triển của Apple về hồ sơ cấp phép.

Sau đây là các bước tối thiểu cần thiết để triển khai một ứng dụng:

  1. Tạo giá trị nhận dạng nhóm ứng dụng để ứng dụng của bạn giao tiếp với MatterExtension.
    1. Đăng nhập vào Apple Developer Portal (Cổng thông tin dành cho nhà phát triển của Apple).
    2. Thêm giá trị nhận dạng nhóm ứng dụng. Ví dụ: bạn có thể định dạng là group.com.company.commissioning.
  2. Đăng ký thiết bị kiểm thử vào tài khoản nhà phát triển.
  3. Tạo hồ sơ cho mục tiêu của ứng dụng.

    1. Quyết định chọn một giá trị nhận dạng gói ứng dụng cho ứng dụng của bạn. Giá trị nhận dạng này phải là duy nhất và mang tính mô tả. Ví dụ: bạn có thể định dạng là com.company.HomeApiSample. Giá trị nhận dạng này sẽ được dùng trong phần còn lại của phần này.
    2. Đăng ký mã nhận dạng ứng dụng. Khi được nhắc, hãy thêm chức năng Chứng thực ứng dụngNhóm ứng dụng.
    3. Chỉnh sửa Mã ứng dụng mới tạo và định cấu hình chức năng Nhóm ứng dụng để thêm mã nhận dạng nhóm ứng dụng đã đăng ký.

    4. Tạo hồ sơ cấp phép phát triển để phát triển ứng dụng. Liên kết khoá này với Mã ứng dụng mới tạo và các thiết bị kiểm thử đã chọn. Đảm bảo bạn có chứng chỉ nhà phát triển để ký ứng dụng.

  4. Tạo hồ sơ cho MatterExtension mục tiêu của bạn.

    1. Quyết định chọn một giá trị nhận dạng gói ứng dụng cho MatterExtension. Giá trị nhận dạng này phải được kế thừa từ giá trị nhận dạng ứng dụng. Ví dụ: bạn có thể định dạng là com.company.HomeApiSample.MatterExtension.
    2. Đăng ký mã nhận dạng ứng dụng. Khi được nhắc, hãy thêm chức năng Nhóm ứng dụng.
    3. Chỉnh sửa Mã ứng dụng mới tạo và định cấu hình chức năng Nhóm ứng dụng để thêm giá trị nhận dạng nhóm ứng dụng đã đăng ký mà bạn đã tạo ở các bước trước.
    4. Tạo hồ sơ cấp phép phát triển cho MatterExtension.

Tạo mã ứng dụng OAuth và bật Home API

Ứng dụng của bạn cần có mã ứng dụng khách OAuth để xác định danh tính với phần phụ trợ xác thực của Google. Đối với iOS và các ứng dụng, bạn phải định cấu hình loại ứng dụng mã ứng dụng OAuth là iOS. Ứng dụng này cũng sẽ gọi Home API. Để bật chức năng này, bạn phải bật API trong dự án Google Cloud.

Tạo mã ứng dụng OAuth

  1. Trong Google Cloud Console, hãy chuyển đến trang tổng quan về bộ chọn dự án rồi chọn dự án mà bạn muốn dùng để tạo thông tin đăng nhập OAuth.
  2. Chuyển đến trang API và Dịch vụ bằng cách nhấp vào nút trình đơn ở phía trên cùng bên trái > Xem tất cả sản phẩm > API và Dịch vụ.
  3. Trong trình đơn điều hướng, hãy nhấp vào Thông tin đăng nhập.
  4. Nếu bạn chưa định cấu hình màn hình xin phép cho dự án này trên Google Cloud, thì nút Định cấu hình màn hình xin phép sẽ xuất hiện. Trong trường hợp đó, hãy định cấu hình màn hình xin phép theo quy trình sau. Nếu bạn đã định cấu hình màn hình yêu cầu đồng ý OAuth và trạng thái xuất bản của màn hình này là Thử nghiệm, hãy đảm bảo rằng các tài khoản thử nghiệm mà bạn sẽ sử dụng được thêm vào nhóm Người dùng thử nghiệm. Nếu không, hãy chuyển sang bước tiếp theo.

    1. Tuỳ thuộc vào trường hợp sử dụng của bạn, hãy chọn Nội bộ hoặc Bên ngoài, rồi nhấp vào Tạo. Ngăn màn hình xin phép bằng OAuth sẽ xuất hiện.
    2. Nhập thông tin trên trang Thông tin về ứng dụng theo hướng dẫn trên màn hình, rồi nhấp vào Lưu và tiếp tục. Ngăn Scopes (Phạm vi) sẽ xuất hiện.
    3. Bạn không cần thêm phạm vi nào, vì vậy hãy nhấp vào Lưu và tiếp tục. Ngăn Người dùng kiểm thử sẽ xuất hiện.
    4. Nếu chọn tạo màn hình đồng ý nội bộ, bạn phải thêm người dùng để kiểm thử quyền truy cập vào ứng dụng. Nhấp vào Thêm người dùng. Ngăn Thêm người dùng sẽ xuất hiện. Người dùng kiểm thử có đặc quyền cấp quyền trong ứng dụng của bạn. Trong trường trống, hãy thêm một hoặc nhiều địa chỉ email của Tài khoản Google, sau đó nhấp vào Thêm.
    5. Nhấp vào Lưu và tiếp tục. Ngăn Tóm tắt sẽ xuất hiện.
    6. Xem lại thông tin trên màn hình xin phép bằng OAuth, rồi nhấp vào Quay lại trang tổng quan.
  5. Trên bảng trình đơn bên trái, hãy nhấp vào Thông tin đăng nhập để tạo mã ứng dụng OAuth.

    Thiết lập màn hình OAuth

    1. Nhấp vào nút TẠO THÔNG TIN XÁC THỰC rồi chọn Mã ứng dụng OAuth.
      1. Trong mục application type (loại ứng dụng), hãy chọn iOS.
    2. Nhập Bundle ID (Mã nhận dạng gói) cùng với mã nhận dạng ứng dụng và Apple Developer Team ID (Mã nhận dạng nhóm nhà phát triển Apple). Các trường khác là không bắt buộc và bạn có thể để trống.
    3. Nhấp vào TẠO rồi ghi lại Mã ứng dụng đã tạo hoặc TẢI PLIST XUỐNG. Bạn sẽ dùng mã này sau để bật chức năng quy trình cấp quyền. Để biết thêm thông tin, hãy xem phần Tạo thông tin xác thực uỷ quyền.

Bật Home API

Cho phép truy cập vào Home API.

  1. Trong thẻ API và dịch vụ, hãy nhấp vào API và dịch vụ đã bật.
  2. Nhấp vào BẬT API VÀ DỊCH VỤ ở đầu trang.
  3. Tìm biểu tượng HOME API rồi chọn biểu tượng đó.
  4. Trong trang chi tiết Home API, hãy nhấp vào BẬT.

Tải mã nguồn xuống

Bạn có thể xem mã nguồn cho ứng dụng mẫu trên GitHub.

Chuyển đến vị trí bạn muốn lưu dự án, sau đó nhân bản dự án:

git clone https://github.com/google-home/google-home-api-sample-app-ios.git

Để tải dự án trên Xcode, hãy nhấp vào File (Tệp) > Open (Mở) rồi chọn GoogleHomeAPISampleIOS.xcodeproj trong thư mục gốc của kho lưu trữ đã sao chép.

Thiết lập SDK

Dự án ứng dụng mẫu cần thêm một số thông tin để có thể tạo. Trong đó có cả việc thêm các tệp SDK Framework cục bộ, điền thông tin mã nhận dạng tài khoản nhà phát triển và điền mã nhận dạng ứng dụng OAuth.

Tạo ứng dụng

Để tải Home APIs iOS SDK xuống, trước tiên, bạn phải đăng nhập vào Google Home Developers.

Đăng nhập ngay!

Định cấu hình dự án Xcode cho ứng dụng mẫu:

  1. Trong ngăn điều hướng Xcode, hãy chọn tệp GoogleHomeAPISampleIOS để chỉnh sửa cấu hình dự án.

    Thiết lập ứng dụng mẫu SDK

  2. Nhấp vào thẻ Chung ở trên cùng rồi chọn mục tiêu GoogleHomeAPISampleIOS ở bên trái.

  3. Di chuyển xuống cho đến khi bạn thấy phần Frameworks, Libraries, and Embedded Content (Khung, thư viện và nội dung được nhúng). Bạn sẽ thấy 2 Khung API Home được liệt kê.

  4. Trong cột Nhúng, hãy chọn Nhúng và ký cho GoogleHomeSDK.xcframework. Khung còn lại, GoogleHomeTypes.xcframework, phải được giữ nguyên là Do Not Embed (Không nhúng).

  5. Ở cuối danh sách, hãy nhấp vào biểu tượng +.

  6. Khi được nhắc, hãy tìm SafariServices.framework rồi nhấp vào thêm. Đảm bảo cột Nhúng được đặt thành Không nhúng cho mục này.

    Nhúng và ký

  7. Nhấp vào biểu tượng MatterAddDeviceExtension trong mục Mục tiêu để chỉnh sửa mục tiêu của mục tiêu đó.

  8. Di chuyển xuống cho đến khi bạn thấy phần Frameworks and Libraries (Khung và thư viện). Bạn sẽ thấy biểu tượng GoogleHomeSDK.xcframework trong danh sách.

  9. Trong cột Nhúng, hãy chọn Không nhúng.

  10. Định cấu hình mã ứng dụng khách OAuth và nhà phát triển:

    1. Trong ngăn điều hướng, hãy tìm thư mục GoogleHomeAPISampleIOS rồi mở tệp Info.plist để chỉnh sửa.
  11. Trong tệp Info.plist, hãy điền GIDClientID bằng mã ứng dụng OAuth của bạn (xem phần Thiết lập sự đồng ý OAuth), Cloud Project Number tương ứng với dự án đám mây của bạn và GIDTeamID bằng Apple Developer Team ID của tài khoản nhà phát triển được dùng trong quy trình đăng ký OAuth.

  12. Thêm chức năng Chứng thực ứng dụng:

    1. Trong ngăn điều hướng Xcode, hãy chọn tệp dự án GoogleHomeAPISampleIOS để chỉnh sửa cấu hình dự án.
    2. Nhấp vào thẻ Signing and Capabilities (Ký và các chức năng) ở trên cùng, rồi chọn GoogleHomeAPISampleIOS mục tiêu ở bên trái trong phần TARGETS (MỤC TIÊU).
    3. Ngay bên dưới thẻ Ký và chức năng, hãy nhấp vào + Chức năng rồi tìm App Attest.
    4. Nhấp vào App Attest để thêm. Nếu khả năng này không có trong tìm kiếm, thì có thể dự án đã thêm khả năng này.
  13. Thêm chức năng Nhóm ứng dụng.

    Thêm nhóm ứng dụng

    1. Chuyển đến dự án GoogleHomeAPISampleIOS > GoogleHomeAPISampleIOS.
    2. Nhấp vào Signing & Capabilities (Ký và các chức năng) > + Capability (+ Chức năng).
    3. Chọn chức năng Nhóm ứng dụng.
    4. Nhấp vào biểu tượng + trong phần Nhóm ứng dụng rồi thêm giá trị nhận dạng Nhóm ứng dụng cho ứng dụng mà bạn đã thêm trong Apple Developer Portal.
    5. Lặp lại các bước này cho mục tiêu MatterAddDeviceExtension để thêm mục tiêu này vào App Groups (Nhóm ứng dụng).
  14. Cập nhật mã nhận dạng gói

    1. Để chạy và triển khai thành công ứng dụng mẫu trên phần cứng bằng chứng chỉ nhà phát triển và hồ sơ cung cấp, bạn sẽ cần cung cấp một giá trị nhận dạng gói duy nhất. Đây phải là giá trị nhận dạng giống với giá trị nhận dạng được liên kết với thông tin đăng nhập của ứng dụng OAuth (xem ở trên).
    2. Trong ngăn điều hướng Xcode, hãy chọn tệp dự án GoogleHomeAPISampleIOS để chỉnh sửa cấu hình dự án.
    3. Nhấp vào thẻ Signing and Capabilities (Ký và các chức năng) ở trên cùng, rồi chọn GoogleHomeAPISampleIOS mục tiêu ở bên trái trong phần TARGETS (MỤC TIÊU).
    4. Chọn trường Bundle Identifier (Giá trị nhận dạng gói) trong phần rồi nhập giá trị nhận dạng duy nhất cho Ứng dụng.
    5. Chọn hoặc cài đặt hồ sơ cung cấp liên quan đến gói đó cùng với các quyền bắt buộc.
    6. Lặp lại các bước này cho mục tiêu MatterAddDeviceExtension để nhập Bundle identifier (Mã nhận dạng gói) cho tiện ích và nhập hồ sơ cung cấp đã đăng ký của tiện ích đó.
  15. Cập nhật giá trị nhận dạng nhóm ứng dụng đã đăng ký trong mã.

    1. Ứng dụng phải định cấu hình thực thể SDK để sử dụng giá trị nhận dạng Nhóm ứng dụng cho các tính năng như thiết lập thiết bị. Cập nhật ứng dụng để sử dụng Mã nhóm ứng dụng đã đăng ký trong Apple Developer Portal bằng cách tìm kiếm chuỗi HOME_API_TODO_ADD_APP_GROUP và thay thế từng phiên bản bằng mã này.

    Các cấu hình này được thực hiện trong các tệp sau:

    • GoogleHomeAPISampleIOS.swift khi SDK được khởi chạy.
    • RequestHandler.swift
    • CommissioningManager.swift