iOS 샘플 앱 빌드

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

기본 요건

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

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

Xcode 다운로드

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

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

개발하려면 다음 요구사항을 충족하는 Mac이 필요합니다.

  • macOS Sonoma 이상
  • Xcode 15.3 이상

Apple 배포 구성 파일 만들기

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

두 번째로, 앱과 MatterExtension 간의 통신을 위해 앱 그룹을 사용 설정해야 합니다. 이렇게 하려면 앱 그룹 식별자를 등록해야 합니다.

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

다음은 앱을 배포하는 데 필요한 최소 단계를 간략하게 보여줍니다.

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

    1. 앱의 애플리케이션 번들 식별자를 결정합니다. 식별자는 고유하고 설명적이어야 합니다. 예를 들어 형식이 com.company.HomeApiSample일 수 있습니다. 이 식별자는 이 섹션의 나머지 부분에서 사용됩니다.
    2. 앱 ID를 등록합니다. 메시지가 표시되면 App AttestApp Groups 기능을 추가합니다.
    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 개발자 팀 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에서 프로젝트를 로드하려면 File > Open을 클릭하고 복제된 저장소의 루트에서 GoogleHomeAPISampleIOS.xcodeproj을 선택합니다.

SDK 설정

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

앱 빌드

Home APIs iOS SDK를 다운로드하려면 먼저 Google Home Developers에 로그인해야 합니다.

지금 로그인하세요.

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

  1. Xcode 탐색 창에서 GoogleHomeAPISampleIOS 파일을 선택하여 프로젝트 구성을 수정합니다.

    SDK 샘플 앱 설정

  2. 상단의 일반 탭을 클릭하고 왼쪽에서 타겟 GoogleHomeAPISampleIOS을 선택합니다.

  3. 프레임워크, 라이브러리, 삽입된 콘텐츠 섹션이 표시될 때까지 아래로 스크롤합니다. 두 개의 Home API 프레임워크가 표시됩니다.

  4. 삽입 열에서 GoogleHomeSDK.xcframework삽입 및 서명을 선택합니다. 다른 프레임워크인 GoogleHomeTypes.xcframework임베드하지 않음으로 두어야 합니다.

  5. 목록 하단에서 + 아이콘을 클릭합니다.

  6. 메시지가 표시되면 SafariServices.framework를 검색하고 추가를 클릭합니다. 이 항목의 삽입 열이 삽입 안함으로 설정되어 있는지 확인합니다.

    삽입 및 서명

  7. 타겟 아래의 MatterAddDeviceExtension 아이콘을 클릭하여 타겟을 수정합니다.

  8. 프레임워크 및 라이브러리 섹션이 표시될 때까지 아래로 스크롤합니다. GoogleHomeSDK.xcframework가 표시됩니다.

  9. 삽입 열에서 삽입 안함을 선택합니다.

  10. 개발자 및 OAuth 클라이언트 ID를 구성합니다.

    1. 탐색창에서 GoogleHomeAPISampleIOS 폴더를 찾아 수정할 Info.plist 파일을 엽니다.
  11. Info.plist 파일에서 GIDClientID를 OAuth 클라이언트 ID (OAuth 동의 설정 섹션 참고)로, GIDTeamID를 OAuth 등록 프로세스 중에 사용된 개발자 계정의 Apple 개발자팀 ID로 채웁니다.

  12. 빌드 시스템을 구성합니다.

    링커 플래그 추가

    1. Xcode 탐색 창에서 GoogleHomeAPISampleIOS 프로젝트 파일을 선택하여 프로젝트 구성을 수정합니다.
    2. 상단의 Build Settings(빌드 설정) 탭을 클릭하고 왼쪽의 TARGETS 섹션에서 타겟 GoogleHomeAPISampleIOS을 선택합니다.
    3. Other Linker Flags(기타 링커 플래그)를 검색하고 다음 두 항목을 추가합니다.
      • -lc++
      • -ObjC
  13. App Attest 기능 추가:

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

    앱 그룹 추가

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

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

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

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

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