iOS の権限と検出

iOS 14 以降では、オペレーティング システムによって新しい制限が適用され、 Cast のユーザー エクスペリエンスに影響する権限設定について学びました。また、 アプリに Cast SDK を実装します。アプリがキャスト機能を維持するには 最新バージョンの iOS を使用している場合は、これらの問題に対応するために 役立ちます。

iOS 14

iOS Cast センダーアプリを Google Cast SDK に更新する必要があります v4.6.0 以降。これらのバージョンでは、iOS 14 とその要件がサポートされています。

iOS 14 以降、ローカル ネットワーク上のデバイスをスキャンするアプリ 1 回限りの権限ダイアログで、ユーザーに検索と接続を求める 接続します。Cast プラットフォームは、ローカル ネットワークを使用して キャスト デバイスを制御するため、ユーザーが権限を拒否した場合、 キャスト。

ユーザー エクスペリエンスを向上させるため、SDK の UX をいくつか変更しています パフォーマンスが向上します。UX の変更により ローカル ネットワークへのアクセス許可が必要な理由をユーザーに明確に示します。 ローカル ネットワーク デバイスへのアクセスが 無効です。

v4.4.8 以前を使用する Cast SDK のバージョンでビルドされたアプリは引き続き利用できます。 Xcode 11.7 以前でビルドされている限り機能します。もし Xcode 12 以降で iOS 14 向けにビルドしている場合は、 キャスト アプリが引き続き正常に動作するように、SDK v4.6.0 以降をインストールしてください。

CocoaPods では、Cast iOS SDK v4.6.0 以降を以下の方法でダウンロードできます。 CocoaPods の設定を行うか、手動で 手動設定の手順を実施します。このリリース の基盤となる検出メカニズムが変更され、以下のことが (Xcode 12 でビルド)を使用して、ネットワーク上のキャスト デバイスを検出できます。キャスト アイコンが 常に表示されるようになりました。キャスト アイコンをタップした際、利用できるデバイスがない場合 ] ボタンをクリックすると、デバイスが動作しない理由を説明するダイアログが表示されます。 (ローカル ネットワーク アクセスを再度有効にする方法に関する情報を含む) 付与します。

Cast SDK の変更点

初めてキャストする場合

ユーザーが初めてキャストしようとしたときに、ローカル ネットワーク アクセス(LNA) ローカル ネットワーク アクセスの理由を説明するインタースティシャル ダイアログが表示される その後に、Apple 提供の iOS ローカル ネットワーク アクセス権限が続きます。 表示されます。以下のモックはこのフローを示しています。

ローカル ネットワーク アクセス権限のフロー

キャストを利用できません

iOS センダー SDK 4.6.0 以降では、ユーザーが常にキャスト アイコンを は Wi-Fi に接続されています。キャスト デバイスを利用できない場合は、 キャスト アイコンをタップするとダイアログが開き、 以下のモックに示すように、キャストを利用できない考えられる理由のヒントが表示されます。

キャストを使用したフローを利用できません

iOS 14 でのアプリの更新

  1. Cast iOS SDK 4.8.3 をプロジェクトに追加する

    CocoaPods を使用している場合は、pod update を使用して 4.8.3 SDK をプロジェクトに追加します。

    それ以外の場合は <ph type="x-smartling-placeholder"></ph> SDK を手動で pull することもできます

    <ph type="x-smartling-placeholder">
  2. NSBonjourServicesInfo.plist に追加する

    Info.plistNSBonjourServices を指定して、 iOS 14 でのローカル ネットワークの検出が可能になりました。

    _googlecast._tcp と デバイスのサービスとしての_<your-app-id>._googlecast._tcp 確認します。

    appID は receiverID です。これは、 GCKDiscoveryCriteria

    次の NSBonjourServices 定義の例を更新します。 「ABCD1234」に置き換えるをアプリ ID に置き換えます。

    &lt;key&gt;NSBonjourServices&lt;/key&gt;
    &lt;array&gt;
      &lt;string&gt;_googlecast._tcp&lt;/string&gt;
      &lt;string&gt;_ABCD1234._googlecast._tcp&lt;/string&gt;
    &lt;/array&gt;
  3. NSLocalNetworkUsageDescriptionInfo.plist

    Google 検索に表示されるメッセージを プロンプトにアプリ固有の権限文字列を追加して、ネットワーク プロンプトを Info.plist ファイル: Cast の説明に使用する NSLocalNetworkUsageDescription DIAL などの検出サービスが含まれます。

    &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt;
    <string>${PRODUCT_NAME} は、ローカル ネットワークを使用して Wi-Fi 上の Cast 対応デバイスを検出します
    指定します。</string>

    このメッセージは、iOS のローカル ネットワーク アクセス ダイアログの一部として、 示しています

    ローカル ネットワークのキャストの権限ダイアログの画像
  4. アプリを Apple App Store に再リリースする

    4.8.3 を使用してアプリを再リリースすることもおすすめします。 必要があります。

カスタマイズ

キャスト デバイスの検出の開始

デフォルトでは、キャスト デバイスの検出はユーザーが初めてタップしたときに開始されます。 キャスト アイコン(GCKUICastButton)をタップします。今回が初めての場合は、 iOS へのアップグレード後にローカル ネットワークでキャストアプリを使用してみた 新しい LNA インタースティシャルに続いて、iOS ローカル ネットワークが表示される。 アクセス権限のダイアログ。

デバイスの検出を開始するタイミングを制御できる新しいフラグを利用できます UX の特定の要素の振る舞い:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

デフォルト値は true です。このフラグを適用できるのは、このフラグが GCKCastOptions::disableDiscoveryAutostart false に設定されている。

true に設定した場合は、ユーザーが 初めてGCKUICastButtonです。情報メッセージが ローカル ネットワーク権限がユーザーに付与されている理由を 必要ありません。このメッセージに続いて、iOS 14 の LNA メッセージが表示されます。 メッセージの確認応答後にキャスト デバイスの検出が開始されます。

それ以降のアプリの起動では、常に GCKUICastButton が表示されます。

false に設定した場合、デバイスの検出は フラグ GCKCastOptions::disableDiscoveryAutostart

よくある質問

以前のモジュールを再リリースした場合 Cast SDK v4.4.8 と Xcode 12 で送信側アプリをキャストしますか?

アプリがローカル ネットワーク上のキャスト デバイスを検出できない可能性があります (ただし、Apple からネットワーク マルチキャストの利用資格を取得している場合を除く)。 なお、Apple は、 サポートする目的があります。 Xcode 12 でビルドする場合は、アプリをリリースする必要があります。

新しい Cast SDK でアプリを再リリースするとどうなりますか? iOS 13 以前を使用しているユーザーはエクスペリエンスを継続できますか?

ユーザー エクスペリエンスは以前と変わりません。 可能性があります。ユーザーに表示される変更は、ユーザーのみに適用される ダウンロードします

新しいアプリがリリースされたら、アプリをアップデートするにはどうすればよいですか? リリースされますか?

  • アプリの Info.plist を更新してローカル ネットワークを含める 使用方法の説明です。
  • NSBonjourServices をアプリの Info.plist を使用して、Cast の Bonjour サービス名を指定します。 アプリ ID を使用します。
  • Cast SDK 4.6.0 を使用するように送信側アプリをアップグレードしてください。
  • アプリを Apple App Store に再リリースします。

カスタム デバイスにデバイスが表示されなくなったのはなぜですか? 4.6.0 にアップグレードしたらどうなるでしょうか?

これは、カスタム デバイスを使用している場合に発生する可能性のある既知の問題です。 デバイス選択ツールを使用していました。バージョン 4.4.8 の Cast SDK 以前では、デバイス スキャンは自動的に行われていました。バージョンで開始 4.6.0 では、startDiscovery を明示的に呼び出す必要があります。 メソッドを <ph type="x-smartling-placeholder"></ph> GCKDiscoveryManager クラスを使用してデバイスの検出を開始します。

この変更の理由は、ローカル ネットワーク アクセス(LNA)が 権限プロンプトは、アプリが最初のリクエストをスキャンした後 あります。これにより、権限ダイアログがランダムな場所に表示されることがある。 説明します

アプリのカスタム デバイス選択ツールを構築するデベロッパーは、 デバイスを起動する前に 1 回限りのインタースティシャルを表示することが想定されている iOS 14 で初めてスキャンされました。

iOS 13

iOS 13 では、新しい権限要件が導入され、 Google Cast SDK を使用してアプリを操作できます。

Google Cast SDK v4.4.3 以降では、 Bluetooth® 権限は必要ありません。このフレームワークは、 サイトと新しい google-cast-sdk-no-bluetooth 個の Cocoapods。

アプリの内訳

現在使用している iOS SDK のバージョン別の内訳は次のとおりです。 次を使用:

iOS 12 以前の SDK で構築されたアプリ

  • 推奨される対応。次の場合、デバイス検出のパフォーマンスが低下することがあります。 iOS 13 でも動作しますが、引き続き機能します。おすすめは Cast SDK v4.4.4 にアップグレードしてください。
  • iOS 13 では、Bluetooth® の権限をアプリに付与するようユーザーに求めます。

iOS 13 SDK を使用してビルドされたアプリ

  • ご対応のお願い: Cast SDK 4.4.4 に更新してください。更新しないとキャスト アイコンが表示されない場合があります。 ユーザーが位置情報の利用許可を付与しなかった場合に表示されます。Cast SDK へのアップグレード 4.4.4 は、iOS 13 で安定したキャストを実現するうえで必要です。