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 ハブ。
  6. デバイスに Thread が必要で、ハブにその機能がない場合は、Thread ボーダー ルーター。
  7. サポートされているデバイスタイプが 1 つ以上。

開発には、次の要件を満たす 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. アプリのアプリケーション バンドル ID を決定します。識別子は一意でわかりやすいものにする必要があります。たとえば、 com.company.HomeApiSampleのようにフォーマットできます。この識別子は、このセクションの残りの部分で使用されます。
    2. アプリ ID を登録します。 プロンプトが表示されたら、App Attest 機能と App Groups 機能を追加します。
    3. 新しく作成したアプリ ID を編集し、App Groups 機能を構成して、登録したアプリグループ識別子を追加します。

    4. 開発プロビジョニング プロファイルを作成します アプリ開発用。新しく作成したアプリ ID と選択したテストデバイスに関連付けます。アプリに署名するためのデベロッパー証明書があることを確認してください。

  4. MatterExtension ターゲットのプロファイルを作成します。

    1. MatterExtension のアプリケーション バンドル ID を決定します。識別子はアプリ ID から継承する必要があります。たとえば、com.company.HomeApiSample.MatterExtension のようにフォーマットできます。
    2. アプリ ID を登録します。 プロンプトが表示されたら、App Group 機能を追加します。
    3. 新しく作成したアプリ ID を編集し、App Groups 機能を構成して、前の手順で作成した登録済みアプリグループ識別子を追加します。
    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. 内部同意画面を作成する場合は、アプリへのアクセスをテストするユーザーを追加する必要があります。[ユーザーを追加] をクリックします。[ユーザーを追加] ペインが表示されます。テストユーザーには、アプリで権限を付与する権限があります。空のフィールドに 1 つ以上の Google アカウントのメールアドレスを追加し、[追加] をクリックします。
    5. [保存して次へ] をクリックします。[概要] ペインが表示されます。
    6. OAuth 同意画面の情報を確認し、[ダッシュボードに戻る] をクリックします。
  5. 左側のメニューパネルで [認証情報] をクリックして、OAuth クライアント ID を作成します。

    OAuth 画面を設定する

    1. [認証情報を作成] ボタンをクリックし、[OAuth クライアント ID] を選択します。
      1. [アプリケーション タイプ] で [iOS] を選択します。
    2. アプリ ID と 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 APIs iOS SDK をダウンロードするには、まず Google Home デベロッパーにログインする必要があります。

今すぐログイン

サンプルアプリの Xcode プロジェクトを構成します。

  1. ダウンロードした SDK を、プロジェクトのルート ディレクトリからの相対パスで ThirdParty/GoogleHomeSDK ディレクトリに展開します。
  2. デベロッパー ID と OAuth クライアント ID を構成します。
    1. ナビゲーション パネルで [GoogleHomeAPISampleIOS] フォルダを探し、[Info.plist] ファイルを開いて編集します。
  3. [Info.plist] ファイルで、[GIDClientID] に OAuth クライアント ID([Set up OAuth consent] を参照)、 [Cloud Project Number] にクラウド プロジェクトに対応する番号、 [GIDTeamID] に OAuth 登録プロセスで使用したデベロッパー アカウントの [Apple Developer Team ID] を入力します。

  4. App Attest 機能を追加します。

    1. Xcode ナビゲーション パネルで、[GoogleHomeAPISampleIOS] プロジェクト ファイルを選択して、プロジェクト構成を編集します。
    2. 上部の [Signing and Capabilities] タブをクリックし、左側の [TARGETS] セクションでターゲット GoogleHomeAPISampleIOS を選択します。
    3. [Signing and Capabilities] タブのすぐ下にある [+ Capability] [App Attest] を検索します。
    4. [App Attest] をクリックして追加します。検索でこの機能が見つからない場合は、プロジェクトにすでに追加されている可能性があります。
  5. App Groups 機能を追加します。

    アプリグループを追加する

    1. [GoogleHomeAPISampleIOS] プロジェクト > [GoogleHomeAPISampleIOS] ターゲットに移動します。
    2. [Signing & Capabilities] > [+ Capability] をクリックします。
    3. [App Groups] 機能を選択します。
    4. [App Groups] の下にある [+] アイコンをクリックし、Apple Developer Portal で追加したアプリの App Groups 識別子を追加します。
    5. MatterAddDeviceExtension ターゲットでこれらの手順を繰り返して、[App Groups] に追加します。
  6. バンドル ID を更新する

    1. デベロッパー証明書とプロビジョニング プロファイルを使用してハードウェアでサンプルアプリを正常に実行してデプロイするには、一意のバンドル ID を指定する必要があります。これは、OAuth クライアント認証情報に関連付けられている識別子と同じである必要があります(上記を参照)。
    2. Xcode ナビゲーション パネルで、[GoogleHomeAPISampleIOS] プロジェクト ファイルを選択して、プロジェクト構成を編集します。
    3. 上部の [Signing and Capabilities] タブをクリックし、左側の [TARGETS] セクションでターゲット GoogleHomeAPISampleIOS を選択します。
    4. [Signing] セクションで [Bundle Identifier] フィールドを選択し、アプリの一意の識別子を入力します。
    5. 必要なエンタイトルメントを含む、そのバンドルに関連するプロビジョニング プロファイルを選択またはインストールします。
    6. MatterAddDeviceExtension ターゲットでこれらの手順を繰り返して、拡張機能のバンドル ID を入力し、登録済みのプロビジョニング プロファイルをインポートします。
  7. コードで登録済みアプリグループ識別子を更新します。

    1. デバイスのコミッショニングなどの機能で App Group 識別子を使用するには、アプリで SDK インスタンスを構成する必要があります。文字列 HOME_API_TODO_ADD_APP_GROUP を検索し、各インスタンスを置き換えて、Apple Developer Portal に登録されている App Group ID を使用するようにアプリを更新します。

    これらの構成は、次のファイルで行います。

    • SDK が初期化されたときの GoogleHomeAPISampleIOS.swift
    • RequestHandler.swift
    • CommissioningManager.swift