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 エンタイトルメントを含むプロビジョニング プロファイルを作成する必要があります。

2 つ目は、アプリと MatterExtension 間の通信で App Groups を有効にする必要があることです。これには、アプリ グループ識別子を登録する必要があります。

詳しくは、プロビジョニング プロファイルに関する Apple の開発プロビジョニング プロファイルを作成するをご覧ください。

アプリをデプロイするために必要な最小限の手順は次のとおりです。

  1. MatterExtension と通信するアプリのアプリグループ識別子を作成します。
    1. Apple Developer Portal にログインします。
    2. アプリグループ識別子を追加します。たとえば、group.com.company.commissioning のようにフォーマットできます。
  2. デベロッパー アカウントにテストデバイスを登録します。
  3. アプリ ターゲットのプロファイルを作成します。

    1. アプリのアプリケーション バンドル識別子を決定します。識別子は一意で、説明的なものにする必要があります。たとえば、com.company.HomeApiSample のようにフォーマットできます。この ID は、このセクションの残りの部分で使用されます。
    2. アプリ ID を登録します。メッセージが表示されたら、App Attest 機能と App Groups 機能を追加します。
    3. 新しく作成したアプリ ID を編集し、[App Groups] 機能を構成して、登録済みのアプリ グループ ID を追加します。

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

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

    1. MatterExtension のアプリケーション バンドル識別子を決定します。識別子はアプリの識別子から継承する必要があります。たとえば、com.company.HomeApiSample.MatterExtension のようにフォーマットできます。
    2. アプリ ID を登録します。プロンプトが表示されたら、App Group ケーパビリティを追加します。
    3. 新しく作成したアプリ ID を編集し、アプリ グループ機能を構成して、前の手順で作成した登録済みアプリ グループ ID を追加します。
    4. MatterExtension開発プロビジョニング プロファイルを作成します。

OAuth クライアント ID を生成し、ホーム 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. アプリの識別子と Apple Developer Team ID を使用して、Bundle ID を入力します。その他のフィールドは省略可能で、空白のままにできます。
    3. [作成] をクリックし、作成されたクライアント ID または [PLIST をダウンロード] をメモします。これは、後で権限フローの機能を有効にするために使用されます。詳細については、認可認証情報を作成するをご覧ください。

Home API を有効にする

ホーム API へのアクセスを有効にします。

  1. [API とサービス] タブで、[有効な API とサービス] をクリックします。
  2. ページ上部の [API とサービスを有効化] をクリックします。
  3. HOME API を検索して選択します。
  4. ホーム 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. [フレームワーク、ライブラリ、埋め込みコンテンツ] セクションが表示されるまで下にスクロールします。2 つの Home API Framework が表示されます。

  4. [埋め込み] 列で、GoogleHomeSDK.xcframework の [埋め込みと署名] を選択します。もう一方のフレームワーク GoogleHomeTypes.xcframework は、[埋め込まない] のままにします。

  5. リストの下部にある + アイコンをクリックします。

  6. プロンプトが表示されたら、SafariServices.framework を検索して [追加] をクリックします。このエントリの [埋め込み] 列が [埋め込まない] に設定されていることを確認します。

    埋め込みと署名

  7. [ターゲット] の MatterAddDeviceExtension をクリックして、ターゲットを編集します。

  8. [Frameworks and Libraries] セクションが表示されるまで下にスクロールします。GoogleHomeSDK.xcframework が表示されます。

  9. [埋め込み] 列で [埋め込まない] を選択します。

  10. デベロッパーと OAuth クライアント ID を構成します。

    1. ナビゲーション パネルで GoogleHomeAPISampleIOS フォルダを探し、編集する Info.plist ファイルを開きます。
  11. Info.plist ファイルで、GIDClientID に OAuth クライアント ID(OAuth 同意を設定するセクションを参照)、クラウド プロジェクトに対応する Cloud Project NumberGIDTeamID に OAuth 登録プロセスで使用したデベロッパー アカウントの Apple Developer Team ID を入力します。

  12. App Attest 機能を次のように追加します。

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

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

    1. GoogleHomeAPISampleIOS プロジェクト > GoogleHomeAPISampleIOS ターゲットに移動します。
    2. [Signing & Capabilities] > [+ Capability] をクリックします。
    3. [App Groups] ケーパビリティを選択します。
    4. [App Groups] の下にある [+] アイコンをクリックし、Apple Developer Portal で追加したアプリの App Groups 識別子を追加します。
    5. MatterAddDeviceExtension ターゲットについても上記の手順を繰り返し、アプリグループに追加します。
  14. バンドル ID を更新する

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

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

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

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