iOS 權限和探索

自 iOS 14 起,作業系統會強制執行新的限制,並 權限影響 Cast 使用者體驗。同時會影響 在應用程式中建立 Cast SDK為了讓應用程式維持投放功能, iOS 最新版本,你必須進行更新才能處理上述數據 權限變更。

iOS 14

開發人員應將 iOS Cast 傳送端應用程式更新至 Google Cast SDK v4.6.0 以上版本。這些版本支援 iOS 14 及其需求。

自 iOS 14 起,可掃描區域網路裝置的應用程式 從現在起,系統會顯示一次性權限對話方塊,提示使用者尋找並連結 區域網路裝置。Cast 平台會使用區域網路探索及 控制投放裝置,因此若使用者拒絕授權,將無法在 投放。

為改善使用者體驗,我們決定修改 SDK 的使用者體驗。 適合使用標準裝置挑選器的應用程式這些使用者體驗修改內容 讓使用者更清楚瞭解為何需要區域網路存取權限。 以及如何啟用投放功能 已停用。

如果是透過使用 Cast SDK v4.4.8 或以下版本建構的應用程式,系統將繼續運作 仍可正常運作。如果您是 搭載 Xcode 12 以上版本的 iOS 14 版本,建議更新至 Cast SDK 4.6.0 以上版本,確保 Cast 應用程式能繼續正常運作。

你可以透過 CocoaPods 下載 Cast iOS SDK 4.6.0 以上版本,步驟如下: CocoaPods 設定,或藉由 按照手動設定的說明操作。這個版本 包括針對基礎探索機制的變更, 內建的 Xcode 12 尋找網路上的投放裝置。「投放」按鈕應該 現在一律顯示。當使用者輕觸「投放」時,如果沒有可用的裝置 按鈕後,系統會顯示對話方塊,說明裝置無法成功的原因 ,包括如何重新啟用區域網路存取權的資訊 權限。

Cast SDK 相關異動

首次投放

使用者首次嘗試投放時,會使用區域網路 (LNA) 系統會顯示插頁式對話方塊,說明為何本機網路存取權是 應用程式,然後是 Apple 提供的 iOS 區域網路存取權限。 提示。以下模擬說明這個流程:

區域網路存取權限流程

無法投放

自 iOS 傳送端 SDK 4.6.0 起,使用者一律會在「投放」按鈕中看到「投放」按鈕 已連線至 Wi-Fi。在投放裝置無法使用時: 輕觸「投放」按鈕,就會開啟對話方塊 在 Cast 無法使用的情況下提供提示,如下方模擬圖所示:

無法使用投放功能的流程

在 iOS 14 上更新應用程式

  1. 將 Cast iOS SDK 4.8.1 加進專案

    如果使用 CocoaPods,請使用 pod update 將 4.8.1 SDK 新增至專案。

    否則 在 SDK 中手動提取

  2. Info.plist中新增 NSBonjourServices

    Info.plist 中指定 NSBonjourServices 即可: 允許在 iOS 14 上成功搜尋區域網路。

    您需要同時新增 _googlecast._tcp 和 將「_<your-app-id>._googlecast._tcp」設為裝置服務 才能正常運作

    appID 是您的接收器 ID,這與您在 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;
    
  3. NSLocalNetworkUsageDescription新增至 Info.plist

    強烈建議您自訂「本地」顯示的訊息 在應用程式的 Info.plist 檔案 NSLocalNetworkUsageDescription,例如說明 Cast 探索和其他探索服務,例如 DIAL。

    &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt;
    <string>${PRODUCT_NAME} 會使用區域網路尋找目前連上 Wi-Fi 且支援 Cast 的裝置
    </string>

    這則訊息會顯示在「iOS 區域網路存取權」對話方塊中,如: 顯示在模擬畫面中

    投放區域網路存取權限對話方塊圖片
  4. 將應用程式重新發布至 Apple App Store

    我們也建議您使用 4.8.1 重新發布應用程式,如下所示:

自訂項目

啟動投放裝置探索功能

根據預設,系統會在使用者首次輕觸時啟動探索裝置探索功能 「投放」按鈕 (GCKUICastButton)。如果這是使用者第一次 升級至 iOS 後,嘗試透過區域網路使用 Cast 應用程式 14,系統會顯示新的 LNA 插頁式廣告,後面接著 iOS 區域網路 存取權限對話方塊。

你可以使用新標記控制搜尋裝置的時間 以及使用者體驗中某些元素的行為:

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 不會僅針對 以及支援 Cast 的特殊用途 如果打算使用 Xcode 12 進行建構,請發布應用程式 支援 Cast 4.6.0。

如果我使用新的 Cast SDK 重新發布應用程式, 使用 iOS 13 以下版本的使用者是否會受到影響?

而是繼續提供與先前版本相同的使用者體驗 重新發布應用程式。只有使用者可以看到變更項目 在 iOS 14 上運作

新版本推出後,我需要更新應用程式 推出 Cast SDK 版本?

  • 更新應用程式的 Info.plist,加入區域網路 使用說明。
  • NSBonjourServices 新增至應用程式的 Info.plist,並為 Cast 提供 Bonjour 服務名稱 和應用程式 ID
  • 升級傳送端應用程式即可使用 Cast SDK 4.6.0。
  • 將應用程式重新發布至 Apple App Store。

為什麼自訂裝置不再顯示我的裝置 升級至 4.6.0 版的挑選器?

如果您使用的是自訂裝置,可能會發生這個已知問題 而不是標準裝置挑選器 Cast SDK 以下推出前的階段,系統已自動掃描裝置。版本開始 4.6.0,您必須明確呼叫 startDiscovery 方法 GCKDiscoveryManager 類別可啟動裝置探索作業。

之所以會有這項異動,是因為區域網路存取權 (LNA) 應用程式完成首次掃描權限後,系統就會顯示權限提示 讓應用程式從可以最快做出回應的位置 回應使用者要求這可能會導致權限對話方塊出現在隨機位置 。

如果開發人員為應用程式建立自訂裝置挑選器, 會放送一次一次性的插頁式廣告 在 iOS 14 中首次進行掃描

iOS 13

在 iOS 13 中,導入了新的權限規定,而這些需求會影響 應用程式。

自 Google Cast SDK 4.4.3 版起,Google 會推出額外的 SDK, 不需要 Bluetooth® 權限。這項資訊是由開發人員提供 網站google-cast-sdk-no-bluetooth Cocoapods。

應用程式詳細資料

以下分析內容會因目前使用的 iOS SDK 版本而異 使用:

使用 iOS 12 SDK 或以下版本建構的應用程式

  • 建議做法。何時,裝置探索成效可能會降低 在 iOS 13 上執行,但仍可正常運作。強烈建議你 開發人員升級至 Cast SDK 4.4.4 版 (如果有的話)。
  • iOS 13 會提示使用者授予應用程式藍牙®權限。

使用 iOS 13 SDK 建立的應用程式

  • 敬請採取行動:更新至 Cast SDK 4.4.4 版本,否則系統可能無法顯示「投放」按鈕 會在使用者未授予位置存取權時顯示。升級至 Cast SDK 務必使用 4.4.4 版本確保 iOS 13 上的投放體驗穩定。