로컬 네트워크에서 기기를 검색하는 애플리케이션은 이제 사용자에게 로컬 네트워크 기기를 찾아 연결할 수 있는 일회성 권한 대화상자를 표시합니다. Cast 플랫폼은 로컬 네트워크를 사용하여 Cast 기기를 검색하고 제어하므로 사용자가 권한을 거부하면 캐스팅할 수 없습니다.
사용자 환경을 개선하기 위해 표준 기기 선택 도구를 사용하는 앱의 SDK에 몇 가지 UX를 수정하고 있습니다. 이러한 UX 수정은 사용자에게 로컬 네트워크 액세스 권한이 필요한 이유와 로컬 네트워크 기기 액세스가 사용 중지된 경우 전송을 사용 설정하는 방법을 더 명확하게 보여줍니다.
Cast iOS SDK v4.6.0 이상은 Swift Package Manager 설정에 따라 Swift Package Manager를 사용하여 추가하거나 수동 설정에 따라 수동으로 다운로드할 수 있습니다. 이 버전에는 Xcode 12로 빌드된 앱이 네트워크에서 Cast 기기를 찾을 수 있도록 기본 검색 메커니즘에 대한 변경사항이 포함되어 있습니다. 이제 전송 버튼이 항상 표시됩니다. 사용자가 전송 버튼을 탭할 때 사용 가능한 기기가 없으면 로컬 네트워크 액세스 권한을 다시 사용 설정하는 방법을 비롯하여 기기를 사용할 수 없는 이유에 관한 안내를 제공하는 대화상자가 표시됩니다.
Cast SDK 변경사항
처음 전송하는 경우
사용자가 처음으로 전송을 시도하면 로컬 네트워크 액세스가 필요한 이유를 설명하는 로컬 네트워크 액세스 (LNA) 전면 대화상자가 표시되고, 이어서 Apple에서 제공하는 iOS 로컬 네트워크 액세스 권한 메시지가 표시됩니다. 아래 예시는 흐름을 보여줍니다.

전송할 수 없음
iOS 발신기 SDK 4.6.0부터는 사용자가 Wi-Fi에 연결되어 있으면 전송 버튼이 항상 표시됩니다. Cast 기기를 사용할 수 없는 경우 전송 버튼을 탭하면 아래 모의에 표시된 것처럼 Cast를 사용할 수 없는 이유에 관한 힌트를 사용자에게 제공하는 대화상자가 표시됩니다.

앱 업데이트
-
프로젝트에 Cast iOS SDK 4.8.6 추가
Swift Package Manager를 사용하는 경우
google-cast-ios-sdk패키지를 버전 4.8.6으로 업데이트합니다.그렇지 않으면 SDK를 수동으로 가져옵니다.
-
Info.plist에NSBonjourServices추가로컬 네트워크 검색이 성공하도록
Info.plist에NSBonjourServices를 지정합니다.기기 검색이 제대로 작동하려면
_googlecast._tcp와_<your-app-id>._googlecast._tcp를 모두 서비스로 추가해야 합니다.appID는 receiverID이며
GCKDiscoveryCriteria에 정의된 ID와 동일합니다.다음 예시
NSBonjourServices정의를 업데이트하고 'ABCD1234'를 앱 ID로 바꿉니다. -
Info.plist에NSLocalNetworkUsageDescription추가앱의
Info.plist파일에NSLocalNetworkUsageDescription에 대한 앱별 권한 문자열을 추가하여 로컬 네트워크 프롬프트에 표시되는 메시지를 맞춤설정하는 것이 좋습니다(예: Cast 검색 및 기타 검색 서비스(예: DIAL)를 설명하는 경우).이 메시지는 모의 실험에 표시된 대로 iOS 로컬 네트워크 액세스 대화상자의 일부로 표시됩니다.
-
Apple 앱 스토어에 앱 다시 출시
가능한 한 빨리 4.8.6을 사용하여 앱을 다시 출시하는 것이 좋습니다.
맞춤설정
전송 기기 검색 시작
기본적으로 Cast 기기 검색은 사용자가 Cast 버튼 (GCKUICastButton)을 처음 탭할 때 시작됩니다. 사용자가 로컬 네트워크에서 Cast 앱을 처음 사용하려고 시도하는 경우 새 LNA 전면 광고가 표시되고 iOS 로컬 네트워크 액세스 권한 대화상자가 표시됩니다.
기기 검색이 시작되는 시점과 UX의 특정 요소 동작을 제어할 수 있는 새로운 플래그를 사용할 수 있습니다.
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
기본값은 true입니다. 이 플래그는 GCKCastOptions::disableDiscoveryAutostart 플래그가 false로 설정된 경우에만 적용됩니다.
true로 설정하면 사용자가 GCKUICastButton를 처음 탭할 때 전송 기기 검색이 시작됩니다. 로컬 네트워크 권한이 필요한 이유를 사용자에게 알리는 정보 메시지가 표시됩니다. 이 메시지 다음에 iOS LNA 메시지가 표시됩니다.
메시지가 확인되면 전송 기기 검색이 시작됩니다.
이후 앱 실행 시 GCKUICastButton가 항상 표시됩니다.
false로 설정하면 GCKCastOptions::disableDiscoveryAutostart 플래그 값에 따라 기기 검색이 시작됩니다.
자주 묻는 질문(FAQ)
Cast SDK v4.4.8 및 Xcode 12를 사용하여 Cast 발신기 앱을 다시 출시하면 어떻게 되나요?
Apple에서 네트워킹 멀티캐스트 사용 권한을 얻지 않으면 앱이 로컬 네트워크에서 전송 기기를 검색하지 못할 수 있습니다. Apple은 전송을 지원하기 위한 목적으로만 멀티캐스트 사용 권한을 부여하지 않습니다. Xcode 12로 빌드하려는 경우 Cast 4.6.0으로 앱을 출시해야 합니다.
새 버전의 Cast SDK가 출시되면 앱을 업데이트하기 위해 무엇을 해야 하나요?
- 로컬 네트워크 사용 설명을 포함하도록 앱의
Info.plist를 업데이트합니다. - 앱의
Info.plist에NSBonjourServices를 추가하고 Cast 및 앱 ID의 Bonjour 서비스 이름을 제공합니다. - 발신기 앱을 업그레이드하여 Cast SDK 4.6.0을 사용합니다.
- Apple App Store에 앱을 다시 출시합니다.
4.6.0으로 업그레이드한 후 맞춤 기기 선택 도구에 기기가 표시되지 않는 이유는 무엇인가요?
이는 표준 기기 선택 도구 대신 맞춤 기기 선택 도구를 사용하는 경우 발생할 수 있는 알려진 문제입니다. Cast SDK 버전 4.4.8 이하에서는 기기 검색이 자동이었습니다. 버전 4.6.0부터는
GCKDiscoveryManager 클래스에서 startDiscovery 메서드를 명시적으로 호출하여 기기 검색을 시작해야 합니다.
이 변경사항의 이유는 앱이 처음으로 스캔한 후 로컬 네트워크 액세스 (LNA) 권한 메시지가 표시되기 때문입니다. 이로 인해 권한 대화상자가 앱의 임의의 위치에 표시될 수 있습니다.
앱에 맞춤 기기 선택 도구를 빌드하는 개발자는 처음으로 기기 검색을 시작하기 전에 일회성 전면 광고를 제공해야 합니다.