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

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

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

    1. MatterExtension のアプリケーション バンドル識別子を決定します。識別子はアプリ識別子から継承される必要があります。たとえば、com.company.HomeApiSample.MatterExtension のようにフォーマットできます。
    2. アプリ ID を登録します。プロンプトが表示されたら、App Group 機能を追加します。
    3. 新しく作成した App 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. アプリの識別子と Apple Developer Team ID を使用して、Bundle 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. [フレームワーク、ライブラリ、埋め込みコンテンツ] セクションが表示されるまで下にスクロールします。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 Number にクラウド プロジェクトに対応する番号、GIDTeamID に 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. Bundle identifier を更新する

    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 を検索し、各インスタンスをその ID に置き換えます。

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

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