샘플 앱
Home API를 사용할 때 문제가 발생하면 추가 디버깅을 위해 로그를 수집할 수 있습니다. 휴대기기에서 로그를 수집하려면 Xcode가 필요합니다. Google의 지원이 필요한 경우 iOS 기기와 허브 모두에서 로그를 수집하고 문제 추적기에 관련 정보와 연결된 로그를 사용하여 티켓을 엽니다.
iOS 로그 수집
Xcode와 관련된 모든 단계에서 휴대기기가 로컬 머신에 연결되어 있어야 합니다.
앱 로그와 SDK 로그는 Xcode 콘솔 내에서 직접 표시되고 수집할 수 있습니다. 휴대기기가 로컬 머신에 연결되어 있고 Xcode를 통해 애플리케이션을 실행하면 콘솔에서 애플리케이션 레이어와 통합된 Home SDK 모두에서 표준 출력 (stdout) 및 표준 오류 (stderr) 로그를 자동으로 캡처하고 스트리밍합니다. 이를 통해 개발 및 디버깅 중에 실시간 초기화 프로세스, API 상호작용, SDK 이벤트를 간단하게 모니터링할 수 있습니다.
Xcode에서 확장 프로그램 로그 수집
Home API를 사용할 때 문제가 발생하면 추가 디버깅을 위해 로그를 수집할 수 있습니다.
Xcode의 상단 메뉴 바에서 Debug(디버그)로 이동하여 Attach to Process by PID or Name(PID 또는 이름으로 프로세스에 연결)을 클릭합니다.

PID or Process Name(PID 또는 프로세스 이름)에서 MatterExtension을 선택하고 Attach(연결)를 클릭합니다.

오른쪽 상단을 클릭하면 Waiting to attach to MatterAddDeviceExtension on iPhone(iPhone의 MatterAddDeviceExtension에 연결 대기 중)이 표시됩니다.

탭을 클릭하고 MatterAddExtension 을 선택합니다.

콘솔에 확장 프로그램 로그가 기록됩니다.
Sherlog: 교차 스택 이벤트 추적
Sherlog는 Google 인프라와 파트너 클라우드 서비스 간의 상호작용을 엔드 투 엔드로 보여주는 실시간 추적 서비스입니다.
기본 요건: 추적에는 공유된 Google 조정 계정 (예: GReg 등록 계정 또는 데모 계정)을 사용해야 합니다.
주요 목적: 프로덕션 코드 변경 없이 기능 결함 및 클라우드 간 (C2C) 통합 문제 (예: 계정 연결 실패 또는 잘못된 기기 상태)를 디버그합니다.
기능: SYNC, EXECUTE, QUERY, 계정 연결 인텐트에 대한 전체 RPC 호출 그래프, 요청/응답 페이로드, 메타데이터를 제공합니다.
Fuchsia 허브 기기 로그
이 메서드를 사용하여 다음 Fuchsia 허브에서 로그를 수집할 수 있습니다. * Google Nest Hub (2세대) * Google Nest Hub Max
로컬 로그 검색을 위해 허브를 사용 설정하려면 다음 단계를 따르세요.
- 기기의 일련번호와 모델이 포함된 이메일을 Google 기술계정 관리자 (TAM)에게 보냅니다. 기기 아래에 작은 글자로 표시되어 있습니다.
- 허용 목록에 추가되면 다음 단계에 따라 기능을 사용 설정해야 합니다.
- 허브에서 다음 단계를 따르세요.
- 화면 상단에서 아래로 스와이프합니다.
- 설정 아이콘 을 탭합니다.
- Fuchsia 버전 찾기: Nest Hub (2세대)에서 기기 정보 > 기술 정보 > Fuchsia 버전 으로 이동합니다.
- 'Fuchsia 버전'을 7번 탭합니다. 이렇게 하면 개발자 옵션이 사용 설정됩니다.
- 최상위 메뉴로 돌아갑니다.
- '개발자 옵션'을 탭합니다.
- '파트너 로깅'을 탭합니다.
- 이 기능은 24시간 동안 사용 설정됩니다. 그 후 5단계부터 로깅 기능을 다시 사용 설정합니다.
- 허브에서 다음 단계를 따르세요.
- 허브의 IP 주소를 가져옵니다.
- 화면이 있는 허브에서 다음 단계를 따르세요.
- 화면 상단에서 아래로 스와이프합니다.
- 설정 아이콘 을 탭합니다.
- 기기 IP 주소 찾기: Nest Hub (2세대)에서 기기 정보 > 기술 정보 > IP 주소 로 이동합니다.
- 휴대전화의 Google Home 앱 (GHA)에서 다음 단계를 따르세요.
- 기기를 탭하여 기기 세부정보 페이지를 표시합니다.
- 설정 아이콘 을 탭하여 설정 페이지를 표시합니다.
- 기기 IP 주소 찾기: 기기 정보 > 기술 정보 > IP 주소 로 이동합니다.
- 화면이 있는 허브에서 다음 단계를 따르세요.
- 허브에서 로그를 검색하려면 동일한 Wi-Fi 네트워크의 컴퓨터에서 허브로 GET HTTP 요청을 보냅니다.
- 엔드포인트의 포트와 경로를 기록해 둡니다.
curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file - 연결은 1분 동안만 열어둘 수 있지만 버퍼에서 검색된 데이터에는 일반적으로 20~30분의 이전 이벤트가 포함됩니다.
- 버퍼에 테스트와 관련된 콘텐츠가 포함되도록 하려면 테스트 절차를 완료한 직후 이 메서드를 사용하여 로그를 추출하는 것이 좋습니다 (Android 버그 신고와 유사).
- 엔드포인트의 포트와 경로를 기록해 둡니다.
자동화
에지 감지
Google Home 생태계의 자동화에는 에지 감지라는 로직이 있습니다. 이 로직은 시작 조건이 기기의 이전 상태를 반복하는 상태 업데이트와 달리 실제 상태 변경이 있을 때만 활성화되는지 확인합니다.
예를 들어 조명을 켜는 것이 시작 조건인 경우 에지 감지는 시작 조건이 조명 기기가 켜짐에서 켜짐으로 (변경 없음) 전환되는 것이 아니라 꺼짐에서 켜짐으로 전환되는 경우에만 활성화되는지 확인합니다.
자동화가 예상대로 작동하지 않음
에지 감지를 고려한 후에도 자동화가 예상대로 작동하지 않으면 다음 단계를 따르세요.
각 기기가 자동화와 관계없이 제대로 작동하는지 확인합니다.
자동화의 자동화 그래프를 자동화 DSL과 비교하여 잠재적으로 잘못된 가정을 드러냅니다.
자동화 실행 중에 Google Home 앱에서 기기 상태를 관찰합니다.
자동화에서 참조하는 모든 기기가 예상되는 구조에 있는지 확인합니다. 자동화가 종속된 기기를 삭제하면 의도하지 않은 결과가 발생할 수 있습니다. 자동화에 대한 기기 삭제의 영향을 참고하세요.
자동화가 실행되지 않아야 할 때 실행됨
자동화가 실행되지 않아야 할 때 실행되면 시작 조건 기준을 검토합니다. 상태 변경이 한 번만 캡처되고 자동화가 한 번만 트리거되도록 추가 로직을 추가해야 할 수 있습니다.
자동화가 컴파일되지 않음
앱에 다양한 노드 유형에 해당하는 각 클래스와 참조하는 특성을 비롯한 모든 필수 가져오기가 포함되어 있는지 확인합니다.
자동화 생성 시 유효성 검사 실패
자동화 생성 시 유효성 검사를 통과하지 못하면 경고 또는 오류 메시지에 문제에 관한 정보가 제공됩니다. 자세한 내용은
ValidationIssueType 참조를 참고하세요.
OAuth
기존 OAuth 클라이언트가 있는 경우
게시된 앱에 대해 이미 인증된 OAuth 클라이언트가 있는 경우 기존 OAuth 클라이언트를 사용하여 Home API를 테스트할 수 있습니다.
Google Home Developer Console 등록은 Home API를 테스트하고 사용하기 위해 필요하지 않습니다. 하지만 다른 통합에서 인증된 OAuth 클라이언트가 있는 경우에도 앱을 게시하려면 승인된 Developer Console 등록이 필요합니다.
다음 고려사항이 적용됩니다.
기존 OAuth 클라이언트를 사용하는 경우 사용자 한도는 100명입니다. 테스트 사용자 추가에 관한 자세한 내용은 OAuth 클라이언트 ID 생성을 참고하세요. OAuth 인증과 관계없이 애플리케이션에 권한을 부여할 수 있는 사용자는 Home API에서 부과하는 100명의 한도가 있습니다. 이 제한은 Developer Console 등록이 완료되면 해제됩니다.
Developer Console 등록 은 Home API로 앱을 업데이트하기 위해 OAuth를 통해 기기 유형 부여를 제한할 준비가 되면 승인을 위해 전송해야 합니다.
OAuth 인증이 아직 보류 중인 Google Cloud 앱의 경우 인증이 완료될 때까지 사용자가 OAuth 흐름을 완료할 수 없습니다. 권한 부여를 시도하면 다음 오류가 발생합니다.
Access blocked: <Project Name> has not completed the Google verification process.