이 샘플 iOS 애플리케이션은 Google Home API를 사용합니다. 이 가이드를 사용하여 앱을 처음 빌드하고 실행하세요.
기본 요건
iOS용 Home API를 사용하기 위한 최소 요구사항이 있는지 확인합니다.
샘플 앱을 빌드하고 설치하려면 Xcode 버전 15.3 이상이 설치된 컴퓨터가 필요합니다.
앱을 테스트하려면 다음이 필요합니다.
- Google 계정
- Apple Developer Program에 등록된 Apple ID(실제 기기 구성 파일 생성용) 아직 생성되지 않은 경우 등록 시 추가 비용이 발생하며 완료하는 데 최대 48시간이 걸릴 수 있습니다.
- 테스트 계정으로 설정된 iOS 16.4 이상을 실행하는 iOS 기기 (시뮬레이터 아님)
- Wi-Fi 네트워크
- Home API를 지원하는 Google 허브
- 기기에 스레드가 필요하고 허브에 해당 기능이 없는 경우 스레드 보더 라우터
- 하나 이상의 지원되는 기기 유형
개발에는 다음 요구사항을 충족하는 Mac이 필요합니다.
- macOS Sonoma 이상
- Xcode 15.3 이상
Apple 배포 구성 파일 만들기
먼저 앱에서 App Attest 기능을 사용 설정해야 합니다. 따라서 시뮬레이터 기기에 배포할 수 없습니다. 이를 위해서는 App Attest 권한으로 프로비저닝 프로필을 만들어야 합니다.
둘째, 앱과 MatterExtension
간의 통신을 위해 앱 그룹이 사용 설정되어야 합니다. 이렇게 하려면 앱 그룹 식별자를 등록해야 합니다.
자세한 내용은 프로비저닝 프로필에 관한 Apple의 개발 프로비저닝 프로필 만들기를 참고하세요.
다음은 앱을 배포하는 데 필요한 최소 단계를 간략하게 설명합니다.
- 앱이
MatterExtension
와 통신할 수 있도록 앱 그룹 식별자를 만듭니다.- Apple Developer Portal에 로그인합니다.
- 앱 그룹 식별자를 추가합니다. 예를 들어
group.com.company.commissioning
로 형식이 지정될 수 있습니다.
- 개발자 계정에 테스트 기기를 등록합니다.
앱 타겟의 프로필을 만듭니다.
- 앱의 애플리케이션 번들 식별자를 결정합니다. 식별자는 고유하고 설명적이어야 합니다. 예를 들어
com.company.HomeApiSample
로 형식이 지정될 수 있습니다. 이 식별자는 이 섹션의 나머지 부분에서 사용됩니다. - 앱 ID를 등록합니다. 메시지가 표시되면 App Attest 및 App Groups 기능을 추가합니다.
새로 만든 앱 ID를 수정하고 앱 그룹 기능을 구성하여 등록된 앱 그룹 식별자를 추가합니다.
앱 개발을 위해 개발 프로비저닝 프로필을 만듭니다. 새로 만든 앱 ID 및 선택한 테스트 기기에 연결합니다. 앱에 서명할 개발자 인증서가 있는지 확인합니다.
- 아직 만들지 않은 경우 개발자 ID 인증서 만들기에서 안내를 확인하세요.
- 앱의 애플리케이션 번들 식별자를 결정합니다. 식별자는 고유하고 설명적이어야 합니다. 예를 들어
MatterExtension
타겟의 프로필을 만듭니다.MatterExtension
의 애플리케이션 번들 식별자를 결정합니다. 식별자는 앱 식별자에서 상속되어야 합니다. 예를 들어com.company.HomeApiSample.MatterExtension
로 형식을 지정할 수 있습니다.- 앱 ID를 등록합니다. 메시지가 표시되면 App Group 기능을 추가합니다.
- 새로 만든 앱 ID를 수정하고 앱 그룹 기능을 구성하여 이전 단계에서 만든 등록된 앱 그룹 식별자를 추가합니다.
MatterExtension
의 개발 프로비저닝 프로필을 만듭니다.
OAuth 클라이언트 ID 생성 및 Home API 사용 설정
앱이 Google의 인증 백엔드에 자신을 식별하려면 OAuth 클라이언트 ID가 필요합니다. iOS 및 앱의 경우 OAuth 클라이언트 ID 애플리케이션 유형이 iOS로 구성되어야 합니다. 앱은 Home API도 호출합니다. 이 기능을 사용 설정하려면 Google Cloud 프로젝트에서 API를 사용 설정해야 합니다.
OAuth 클라이언트 ID 생성
- Google Cloud 콘솔에서 프로젝트 선택기 대시보드로 이동하여 OAuth 사용자 인증 정보를 만드는 데 사용할 프로젝트를 선택합니다.
- 왼쪽 상단의 메뉴 버튼 > 모든 제품 보기 > API 및 서비스를 클릭하여 API 및 서비스 페이지로 이동합니다.
- 탐색 메뉴에서 사용자 인증 정보를 클릭합니다.
이 Google Cloud 프로젝트의 동의 화면을 아직 구성하지 않은 경우 동의 화면 구성 버튼이 표시됩니다. 이 경우 다음 절차에 따라 동의 화면을 구성하세요. OAuth 동의 화면이 이미 구성되어 있고 게시 상태가 테스트인 경우 사용할 테스트 계정이 테스트 사용자 그룹에 추가되어 있는지 확인합니다. 그렇지 않으면 다음 단계로 이동합니다.
- 사용 사례에 따라 내부 또는 외부를 선택한 다음 만들기를 클릭합니다. OAuth 동의 화면 창이 표시됩니다.
- 화면에 표시된 안내에 따라 앱 정보 페이지에 정보를 입력한 다음 저장 후 계속을 클릭합니다. 범위 창이 표시됩니다.
- 범위를 추가할 필요가 없으므로 저장 후 계속을 클릭합니다. 테스트 사용자 창이 표시됩니다.
- 내부 동의 화면을 만들기로 선택한 경우 앱 액세스를 테스트할 사용자를 추가해야 합니다. 사용자 추가를 클릭합니다. 사용자 추가 창이 표시됩니다. 테스트 사용자에게는 앱에서 권한을 부여할 수 있는 권한이 있습니다. 빈 필드에 하나 이상의 Google 계정 이메일 주소를 추가한 후 추가를 클릭합니다.
- 저장하고 계속하기를 클릭합니다. 요약 창이 표시됩니다.
- OAuth 동의 화면 정보를 검토한 다음 대시보드로 돌아가기를 클릭합니다.
왼쪽 메뉴 패널에서 사용자 인증 정보를 클릭하여 OAuth 클라이언트 ID를 만듭니다.
- 사용자 인증 정보 만들기 버튼을 클릭하고 OAuth 클라이언트 ID를 선택합니다.
- 애플리케이션 유형에서 iOS를 선택합니다.
- 앱 식별자와 Apple 개발자 팀 ID를 사용하여 번들 ID를 입력합니다. 다른 필드는 선택사항이며 비워 둘 수 있습니다.
- 만들기를 클릭하고 생성된 클라이언트 ID 또는 PLIST 다운로드를 기록해 둡니다. 이는 나중에 권한 흐름 기능을 사용 설정하는 데 사용됩니다. 자세한 내용은 승인 사용자 인증 정보 만들기 섹션을 참고하세요.
- 사용자 인증 정보 만들기 버튼을 클릭하고 OAuth 클라이언트 ID를 선택합니다.
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에서 프로젝트를 로드하려면 File > Open을 클릭하고 복제된 저장소의 루트에서 GoogleHomeAPISampleIOS.xcodeproj
을 선택합니다.
SDK 설정
샘플 앱 프로젝트를 빌드하려면 추가 정보가 필요합니다. 여기에는 SDK 프레임워크 파일을 로컬로 추가하고, 개발자 계정 식별자 정보를 입력하고, OAuth 클라이언트 ID를 입력하는 작업이 포함됩니다.
앱 빌드
Home API iOS SDK를 다운로드하려면 먼저 Google Home 개발자에 로그인해야 합니다.
샘플 앱에 맞게 Xcode 프로젝트를 구성합니다.
Xcode 탐색 창에서
GoogleHomeAPISampleIOS
파일을 선택하여 프로젝트 구성을 수정합니다.상단의 일반 탭을 클릭하고 왼쪽에서 타겟
GoogleHomeAPISampleIOS
을 선택합니다.프레임워크, 라이브러리, 삽입된 콘텐츠 섹션이 표시될 때까지 아래로 스크롤합니다. 두 개의 Home API 프레임워크가 표시됩니다.
삽입 열에서
GoogleHomeSDK.xcframework
에 대해 삽입 및 서명을 선택합니다. 다른 프레임워크인GoogleHomeTypes.xcframework
은 삽입 안 함으로 두어야 합니다.목록 하단에서 + 아이콘을 클릭합니다.
메시지가 표시되면
SafariServices.framework
를 검색하고 추가를 클릭합니다. 이 항목의 삽입 열이 삽입 안 함으로 설정되어 있는지 확인합니다.타겟 아래의
MatterAddDeviceExtension
을 클릭하여 타겟을 수정합니다.프레임워크 및 라이브러리 섹션이 표시될 때까지 아래로 스크롤합니다.
GoogleHomeSDK.xcframework
이 나열되어야 합니다.삽입 열에서 삽입 안함을 선택합니다.
개발자 및 OAuth 클라이언트 ID를 구성합니다.
- 탐색 창에서 GoogleHomeAPISampleIOS 폴더를 찾아 Info.plist 파일을 열어 수정합니다.
Info.plist 파일에서 GIDClientID를 OAuth 클라이언트 ID (OAuth 동의 설정 섹션 참고), 클라우드 프로젝트에 해당하는 Cloud Project Number, GIDTeamID를 OAuth 등록 프로세스 중에 사용된 개발자 계정의 Apple Developer Team ID로 채웁니다.
App Attest 기능 추가:
- Xcode 탐색 창에서
GoogleHomeAPISampleIOS
프로젝트 파일을 선택하여 프로젝트 구성을 수정합니다. - 상단의 서명 및 기능 탭을 클릭하고 왼쪽의 타겟 섹션에서 타겟
GoogleHomeAPISampleIOS
을 선택합니다. - 서명 및 기능 탭 바로 아래에서 + 기능을 클릭하고 App Attest를 검색합니다.
- App Attest를 클릭하여 추가합니다. 검색에 이 기능이 누락된 경우 프로젝트에 이미 추가되었을 수 있습니다.
- Xcode 탐색 창에서
앱 그룹 기능 추가
- GoogleHomeAPISampleIOS 프로젝트 > GoogleHomeAPISampleIOS 타겟으로 이동합니다.
- 서명 및 기능 > + 기능을 클릭합니다.
- 앱 그룹 기능을 선택합니다.
- 앱 그룹 아래의 + 아이콘을 클릭하고 Apple Developer Portal에 추가한 앱의 앱 그룹 식별자를 추가합니다.
- MatterAddDeviceExtension 타겟에 대해 이 단계를 반복하여 App Groups에 추가합니다.
번들 식별자 업데이트
- 개발자 인증서와 프로비저닝 프로필을 사용하여 하드웨어에서 샘플 앱을 실행하고 배포하려면 고유한 번들 식별자를 제공해야 합니다. OAuth 클라이언트 사용자 인증 정보와 연결된 식별자와 동일해야 합니다 (위 참고).
- Xcode 탐색 창에서
GoogleHomeAPISampleIOS
프로젝트 파일을 선택하여 프로젝트 구성을 수정합니다. - 상단의 서명 및 기능 탭을 클릭하고 왼쪽의 타겟 섹션에서 타겟
GoogleHomeAPISampleIOS
을 선택합니다. - 서명 섹션에서 번들 식별자 필드를 선택하고 애플리케이션의 고유 식별자를 입력합니다.
- 필수 권한이 있는 해당 번들과 관련된 프로비저닝 프로필을 선택하거나 설치합니다.
MatterAddDeviceExtension
타겟에 대해 이 단계를 반복하여 확장 프로그램의 번들 식별자를 입력하고 등록된 프로비저닝 프로필을 가져옵니다.
코드에서 등록된 앱 그룹 식별자를 업데이트합니다.
- 애플리케이션은 기기 커미셔닝과 같은 기능을 위해 앱 그룹 식별자를 사용하도록 SDK 인스턴스를 구성해야 합니다.
HOME_API_TODO_ADD_APP_GROUP
문자열을 검색하여 Apple Developer Portal에 등록된 App Group ID를 사용하도록 앱을 업데이트하고 각 인스턴스를 해당 ID로 바꿉니다.
이러한 구성은 다음 파일에서 이루어집니다.
- SDK가 초기화될 때
GoogleHomeAPISampleIOS.swift
RequestHandler.swift
CommissioningManager.swift
- 애플리케이션은 기기 커미셔닝과 같은 기능을 위해 앱 그룹 식별자를 사용하도록 SDK 인스턴스를 구성해야 합니다.