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 機能が有効になっている必要があります。そのため、シミュレータ デバイスにデプロイすることはできません。これには、アプリ構成証明の利用資格を持つプロビジョニング プロファイルを作成する必要があります。

2 つ目は、アプリと MatterExtension 間の通信のためにアプリ グループを有効にする必要があります。これには、アプリグループ ID を登録する必要があります。

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

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

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

    OAuth 画面を設定する

    1. [認証情報を作成] ボタンをクリックし、[OAuth クライアント ID] を選択します。
      1. [アプリケーションの種類] で [iOS] を選択します。
    2. アプリ ID と 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 フレームワーク ファイルをローカルに追加する、デベロッパー アカウント ID 情報を入力する、OAuth クライアント ID を入力するなどの作業が含まれます。

アプリをビルドする

Home APIs iOS SDK をダウンロードするには、まず Google Home Developers にログインする必要があります。

今すぐログイン

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

  1. Xcode のナビゲーション ペインで GoogleHomeAPISampleIOS ファイルを選択し、プロジェクト構成を編集します。

    SDK サンプルアプリを設定する

  2. 上部の [全般] タブをクリックし、左側のターゲット GoogleHomeAPISampleIOS を選択します。

  3. [フレームワーク、ライブラリ、埋め込みコンテンツ] セクションが表示されるまで下にスクロールします。2 つの Home API フレームワークが表示されます。

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

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

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

    埋め込みと署名

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

  8. [フレームワークとライブラリ] セクションが表示されるまで下にスクロールします。GoogleHomeSDK.xcframework が表示されます。

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

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

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

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

    1. Xcode のナビゲーション ペインで、GoogleHomeAPISampleIOS プロジェクト ファイルを選択して、プロジェクト構成を編集します。
    2. 上部の [署名と機能] タブをクリックし、左側の [ターゲット] セクションでターゲット GoogleHomeAPISampleIOS を選択します。
    3. [署名と機能] タブのすぐ下にある [+ 機能] をクリックし、[アプリ構成証明] を検索します。
    4. [App Attest] をクリックして追加します。この機能が検索に表示されない場合は、プロジェクトにすでに追加されている可能性があります。
  13. アプリ グループ機能を追加します。

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

    1. GoogleHomeAPISampleIOS プロジェクト > GoogleHomeAPISampleIOS ターゲットに移動します。
    2. [署名と機能] > [+ 機能] をクリックします。
    3. [アプリグループ] の機能を選択します。
    4. [App Groups] の下の [+] アイコンをクリックし、Apple Developer Portal で追加したアプリの App Groups ID を追加します。
    5. MatterAddDeviceExtension ターゲットに対しても同じ手順を繰り返して、アプリグループに追加します。
  14. バンドル ID を更新する

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

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

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

    • GoogleHomeAPISampleIOS.swift(SDK の初期化時)
    • RequestHandler.swift
    • CommissioningManager.swift