iOS 샘플 앱 빌드

이 샘플 iOS 애플리케이션은 Google Home API를 사용합니다. 이 가이드를 사용하여 앱을 처음으로 빌드하고 실행하세요.

기본 요건

iOS용 Home API를 사용하기 위한 최소 요구사항을 충족하는지 확인합니다.

샘플 앱을 빌드하고 설치하려면 Xcode 버전 15.3 이상이 설치된 컴퓨터가 필요합니다.

Xcode 다운로드

앱을 테스트하려면 다음이 필요합니다.

  1. Google 계정
  2. 실제 기기 구성 파일을 생성하기 위해 Apple Developer Program 에 등록된 Apple ID 아직 생성되지 않은 경우 등록 시 추가 비용이 발생하며 완료하는 데 최대 48시간이 걸릴 수 있습니다.
  3. 테스트 계정으로 설정된 iOS 16.4 이상을 실행하는 iOS 기기 (시뮬레이터 아님)
  4. Wi-Fi 네트워크
  5. Home API를 지원하는 Google 허브 APIs.
  6. 기기에 스레드가 필요하고 허브에 이 기능이 없는 경우 스레드 보더 라우터
  7. 지원되는 기기 유형이 하나 이상

개발을 위해서는 다음 요구사항을 충족하는 Mac이 필요합니다.

  • macOS Sonoma 이상
  • Xcode 15.3 이상

Apple 배포 구성 파일 만들기

먼저 앱에는 App Attest 기능이 사용 설정되어 있어야 합니다. 따라서 시뮬레이터 기기에 배포할 수 없습니다. 이렇게 하려면 App Attest 사용 권한으로 프로비저닝 프로필을 만들어야 합니다.

둘째, 앱과 MatterExtension 간의 통신을 위해서는 앱 그룹이 사용 설정되어 있어야 합니다. 이렇게 하려면 앱 그룹 식별자를 등록해야 합니다.

자세한 내용은 프로비저닝 프로필에 관한 Apple의 개발 프로비저닝 프로필 만들기 를 참고하세요.

다음은 앱을 배포하는 데 필요한 최소 단계를 간략하게 설명합니다.

  1. 앱이 MatterExtension과 통신할 수 있도록 앱 그룹 식별자를 만듭니다.
    1. Apple Developer Portal에 로그인합니다.
    2. 앱 그룹 식별자를 추가합니다. 예를 들어 group.com.company.commissioning 형식으로 지정될 수 있습니다.
  2. 테스트 기기를 개발자 계정에 등록합니다.
  3. 앱 타겟의 프로필을 만듭니다.

    1. 앱의 애플리케이션 번들 식별자를 결정합니다. 식별자는 고유하고 설명적이어야 합니다. 예를 들어 형식으로 지정될 수 있습니다 com.company.HomeApiSample. 이 식별자는 이 섹션의 나머지 부분에서 사용됩니다.
    2. 앱 ID를 등록합니다. 메시지가 표시되면 App Attest앱 그룹 기능을 추가합니다.
    3. 새로 만든 앱 ID를 수정하고 앱 그룹 기능을 구성하여 등록된 앱 그룹 식별자를 추가합니다.

    4. 앱 개발을 위한 개발 프로비저닝 프로필을 만듭니다. 새로 만든 앱 ID 및 선택한 테스트 기기와 연결합니다. 앱에 서명할 개발자 인증서가 있는지 확인합니다.

  4. MatterExtension 타겟의 프로필을 만듭니다.

    1. MatterExtension의 애플리케이션 번들 식별자를 결정합니다. 식별자는 앱 식별자에서 상속되어야 합니다. 예를 들어 com.company.HomeApiSample.MatterExtension 형식으로 지정될 수 있습니다.
    2. 앱 ID를 등록합니다. 메시지가 표시되면 앱 그룹 기능을 추가합니다.
    3. 새로 만든 앱 ID를 수정하고 앱 그룹 기능을 구성하여 이전 단계에서 만든 등록된 앱 그룹 식별자를 추가합니다.
    4. 개발 프로비저닝 프로필을 만듭니다 MatterExtension용.

OAuth 클라이언트 ID 생성 및 Home API 사용 설정

앱은 Google의 인증 백엔드에 자신을 식별하기 위해 OAuth 클라이언트 ID가 필요합니다. iOS 및 앱의 경우 OAuth 클라이언트 ID 애플리케이션 유형 을 iOS로 구성해야 합니다. 앱은 Home API도 호출합니다. 이 기능을 사용 설정하려면 Google Cloud 프로젝트에서 API를 사용 설정해야 합니다.

OAuth 클라이언트 ID 생성

  1. Google Cloud 콘솔에서 프로젝트 선택기 대시보드 로 이동하고 OAuth 사용자 인증 정보를 만드는 데 사용할 프로젝트를 선택합니다.
  2. 왼쪽 상단의 메뉴 버튼 > 모든 제품 보기 > API 및 서비스 를 클릭하여 API 및 서비스 페이지로 이동합니다.
  3. 탐색 메뉴에서 사용자 인증 정보 를 클릭합니다.
  4. 이 Google Cloud 프로젝트의 동의 화면을 아직 구성하지 않은 경우 동의 화면 구성 버튼이 표시됩니다. 이 경우 다음 절차에 따라 동의 화면을 구성합니다. OAuth 동의 화면이 이미 구성되어 있고 게시 상태가 테스트인 경우 사용할 테스트 계정이 테스트 사용자그룹에 추가되어 있는지 확인합니다. 메시지가 표시되지 않으면 다음 단계로 이동합니다.

    1. 사용 사례에 따라 내부 또는 외부를 선택한 후 만들기를 클릭합니다. OAuth 동의 화면 창이 표시됩니다.
    2. 화면에 표시된 안내에 따라 앱 정보 페이지 에 정보를 입력한 후 저장 후 계속 을 클릭합니다. 범위 창이 표시됩니다.
    3. 범위를 추가할 필요가 없으므로 저장 후 계속 을 클릭합니다. 테스트 사용자 창이 표시됩니다.
    4. 내부 동의 화면을 만들도록 선택한 경우 앱에 대한 액세스를 테스트할 사용자를 추가해야 합니다. 사용자 추가 를 클릭합니다. 사용자 추가 창이 표시됩니다. 테스트 사용자는 앱에서 권한을 부여할 수 있는 권한이 있습니다. 빈 필드에 Google 계정 이메일 주소를 하나 이상 추가한 후 추가 를 클릭합니다.
    5. 저장 후 계속 을 클릭합니다. 요약 창이 표시됩니다.
    6. OAuth 동의 화면 정보를 검토한 후 대시보드로 돌아가기 를 클릭합니다.
  5. 왼쪽 메뉴 패널에서 사용자 인증 정보 를 클릭하여 OAuth 클라이언트 ID를 만듭니다.

    OAuth 화면 설정

    1. 사용자 인증 정보 만들기 버튼을 클릭하고 OAuth 클라이언트 ID 를 선택합니다.
      1. **애플리케이션 유형** 에서 **iOS** 를 선택합니다.
    2. 앱 식별자 및 Apple Developer 팀 ID번들 ID 를 입력합니다. 다른 필드는 선택사항이며 비워 둘 수 있습니다.
    3. 만들기를 클릭하고 생성된 클라이언트 ID 또는 PLIST 다운로드를 기록해 둡니다. 이 값은 나중에 권한 흐름 기능을 사용 설정하는 데 사용됩니다. 자세한 내용은 승인 사용자 인증 정보 만들기 섹션을 참고하세요.

Home API 사용 설정

Home API에 대한 액세스를 사용 설정합니다.

  1. API 및 서비스 탭에서 사용 설정된 API 및 서비스 를 클릭합니다.
  2. 페이지 상단에서 API 및 서비스 사용 설정 을 클릭합니다.
  3. HOME API 를 검색하여 선택합니다.
  4. Home API 세부정보 페이지에서 사용 설정 을 클릭합니다.

소스 코드 다운로드

샘플 앱의 소스 코드는 GitHub에서 제공됩니다.

프로젝트를 저장할 위치로 이동한 후 클론합니다.

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

Xcode에서 프로젝트를 로드하려면 파일 > 열기를 클릭하고 클론된 저장소의 루트에서 GoogleHomeAPISampleIOS.xcodeproj를 선택합니다.

프로젝트에 SDK 추가

샘플 앱 프로젝트를 빌드하려면 몇 가지 추가 정보가 필요합니다. 여기에는 SDK 프레임워크 파일을 로컬로 추가하고 개발자 계정 식별자 정보를 채우고 OAuth 클라이언트 ID를 채우는 작업이 포함됩니다.

앱 빌드

Home API iOS SDK를 다운로드하려면 먼저 Google Home 개발자에 로그인해야 합니다.

지금 로그인하세요.

샘플 앱의 Xcode 프로젝트를 구성합니다.

  1. 다운로드한 SDK를 프로젝트 루트 디렉터리를 기준으로 ThirdParty/GoogleHomeSDK 디렉터리에 압축 해제합니다.
  2. 개발자 및 OAuth 클라이언트 ID를 구성합니다.
    1. 탐색 창에서 GoogleHomeAPISampleIOS 폴더를 찾고 Info.plist 파일을 열어 수정합니다.
  3. Info.plist 파일에서 GIDClientID 를 OAuth 클라이언트 ID (OAuth 동의 설정 섹션 참고), 클라우드 프로젝트에 해당하는 클라우드 프로젝트 번호, OAuth 등록 프로세스 중에 사용된 개발자 계정의 Apple Developer 팀 IDGIDTeamID 를 채웁니다.

  4. App Attest 기능 추가:

    1. Xcode 탐색 창에서 GoogleHomeAPISampleIOS 프로젝트 파일을 선택하여 프로젝트 구성을 수정합니다.
    2. 상단의 서명 및 기능 탭을 클릭하고 왼쪽의 TARGETS 섹션에서 타겟 GoogleHomeAPISampleIOS 를 선택합니다.
    3. 서명 및 기능 탭 바로 아래에서 + 기능 을 클릭하고 App Attest를 검색합니다.
    4. App Attest 를 클릭하여 추가합니다. 검색에서 이 기능이 누락된 경우 프로젝트에서 이미 추가했을 수 있습니다.
  5. 앱 그룹 기능을 추가합니다.

    앱 그룹 추가

    1. GoogleHomeAPISampleIOS 프로젝트 > GoogleHomeAPISampleIOS 타겟으로 이동합니다.
    2. 서명 및 기능 > + 기능 을 클릭합니다.
    3. 앱 그룹 기능을 선택합니다.
    4. 앱 그룹 아래의 + 아이콘을 클릭하고 Apple Developer Portal에서 추가한 앱의 앱 그룹 식별자를 추가합니다.
    5. MatterAddDeviceExtension 타겟에 대해 이 단계를 반복하여 앱 그룹 에 추가합니다.
  6. 번들 식별자 업데이트

    1. 개발자 인증서 및 프로비저닝 프로필을 사용하여 하드웨어에서 샘플 앱을 실행하고 배포하려면 고유한 번들 식별자를 제공해야 합니다. 이는 OAuth 클라이언트 사용자 인증 정보와 연결된 식별자와 동일해야 합니다 (위 참고).
    2. Xcode 탐색 창에서 GoogleHomeAPISampleIOS 프로젝트 파일을 선택하여 프로젝트 구성을 수정합니다.
    3. 상단의 서명 및 기능 탭을 클릭하고 왼쪽의 TARGETS 섹션에서 타겟 GoogleHomeAPISampleIOS 를 선택합니다.
    4. 서명 섹션에서 번들 식별자 필드를 선택하고 애플리케이션의 고유 식별자를 입력합니다.
    5. 필요한 권한이 있는 번들과 관련된 프로비저닝 프로필을 선택하거나 설치합니다.
    6. MatterAddDeviceExtension 타겟에 대해 이 단계를 반복하여 확장 프로그램의 번들 식별자를 입력하고 등록된 프로비저닝 프로필을 가져옵니다.
  7. 코드에서 등록된 앱 그룹 식별자를 업데이트합니다.

    1. 애플리케이션은 기기 커미셔닝과 같은 기능에 앱 그룹 식별자를 사용하도록 SDK 인스턴스를 구성해야 합니다. 문자열 HOME_API_TODO_ADD_APP_GROUP을 검색하여 Apple Developer Portal에 등록된 앱 그룹 ID를 사용하도록 앱을 업데이트하고 각 인스턴스를 이 ID로 바꿉니다.

    이러한 구성은 다음 파일에서 이루어집니다.

    • SDK가 초기화될 때 GoogleHomeAPISampleIOS.swift
    • RequestHandler.swift
    • CommissioningManager.swift