iOS 14부터 운영체제에서 Cast 사용자 환경에 영향을 미치는 새로운 제한사항과 권한이 적용됩니다. 또한 Cast SDK를 앱에 빌드하는 방법에도 영향을 줍니다. 앱이 최신 버전의 iOS로 Cast 기능을 유지하려면 이러한 권한 변경을 처리하도록 업데이트해야 합니다.
iOS 14
개발자는 iOS Cast 발신기 앱을 Google Cast SDK v4.6.0 이상으로 업데이트해야 합니다. 이 버전은 iOS 14 및 관련 요구사항을 지원합니다.
iOS 14부터 이제 로컬 네트워크에서 기기를 검색하는 애플리케이션에서 사용자에게 로컬 권한 기기를 찾고 연결하라는 일회성 권한 대화상자가 표시됩니다. Cast 플랫폼은 로컬 네트워크를 사용하여 Cast 기기를 찾고 제어하므로 사용자가 권한을 거부하면 전송할 수 없습니다.
사용자 환경을 개선하기 위해 Google에서는 표준 기기 선택 도구를 사용하는 앱의 SDK를 일부 UX 수정합니다. 이러한 UX 수정을 통해 로컬 네트워크 액세스 권한이 필요한 이유와 로컬 네트워크 기기 액세스가 사용 중지된 경우 전송을 사용 설정하는 방법을 사용자에게 더 명확하게 알 수 있습니다.
v4.4.8 이하를 사용하여 Cast SDK 버전으로 빌드된 앱은 Xcode 11.7 이하를 사용하여 빌드된 한 계속 작동합니다. Xcode 12 이상을 사용하여 iOS 14용으로 빌드하는 경우 Cast 앱이 계속 올바르게 작동하도록 Cast SDK v4.6.0 이상으로 업데이트하는 것이 좋습니다.
CocoaPods 설정을 따르거나 수동 설정에 따라 직접 CocoaPods를 사용하여 Cast iOS SDK v4.6.0 이상을 다운로드할 수 있습니다. Xcode 12로 빌드된 앱이 네트워크에서 Cast 기기를 찾을 수 있도록 기본 검색 메커니즘이 변경되었습니다. 이제 전송 버튼이 항상 표시됩니다. 사용자가 전송 버튼을 탭할 때 사용할 수 있는 기기가 없으면 로컬 네트워크 액세스 권한을 다시 사용 설정하는 방법에 관한 정보를 포함하여 기기를 사용할 수 없는 이유에 관한 안내를 제공하는 대화상자가 표시됩니다.
Cast SDK 변경사항
최초 전송
사용자가 처음으로 전송을 시도하면 로컬 네트워크 액세스가 필요한 이유를 설명하는 로컬 네트워크 액세스 (LNA) 전면 대화상자가 표시되고 Apple에서 제공하는 iOS 로컬 네트워크 액세스 권한 메시지가 표시됩니다. 아래 예시는 흐름을 보여줍니다.
전송할 수 없음
iOS 발신기 SDK 4.6.0부터 사용자가 Wi-Fi에 연결되면 항상 전송 버튼이 표시됩니다. Cast 기기를 사용할 수 없을 때 Cast 버튼을 탭하면 아래 예시처럼 Cast를 사용할 수 없는 이유에 관한 힌트를 사용자에게 제공하는 대화상자가 표시됩니다.
iOS 14에서 앱 업데이트
-
프로젝트에 Cast iOS SDK 4.7.0 추가
CocoaPods를 사용하는 경우
pod update
를 사용하여 프로젝트에 4.7.0 SDK를 추가합니다.그 외의 경우 수동으로 SDK를 가져옵니다.
-
Info.plist
에NSBonjourServices
추가iOS 14에서 로컬 네트워크 검색이 성공할 수 있도록
Info.plist
에NSBonjourServices
를 지정합니다.기기 검색이 제대로 작동하려면
_googlecast._tcp
및_<your-app-id>._googlecast._tcp
를 모두 서비스로 추가해야 합니다.appID는 receiver ID로,
GCKDiscoveryCriteria
에 정의된 것과 동일한 ID입니다.다음 예시
NSBonjourServices
정의를 업데이트하고 'ABCD1234'를 appID로 바꿉니다. -
Info.plist
에NSLocalNetworkUsageDescription
추가NSLocalNetworkUsageDescription
의 앱Info.plist
파일에 Cast 디스커버리 및 기타 검색 서비스(예: DIAL)를 설명하는 앱별 권한 문자열을 추가하여 로컬 네트워크 프롬프트에 표시되는 메시지를 맞춤설정하는 것이 좋습니다.이 메시지는 모의 화면과 같이 iOS 로컬 네트워크 액세스 대화상자의 일부로 표시됩니다.
-
Apple App Store에 앱 다시 출시
가능한 한 빨리 4.7.0을 사용하여 앱을 다시 출시하는 것이 좋습니다.
맞춤설정
Cast 기기 검색 시작
기본적으로 Cast 기기 검색은 사용자가 전송 버튼 (GCKUICastButton
)을 처음 탭할 때 시작됩니다. 사용자가 iOS 14로 업그레이드한 후 처음으로 로컬 네트워크에서 Cast 앱을 사용하려고 시도한 경우 새 LNA 전면 광고가 표시되고 iOS 로컬 네트워크 액세스 권한 대화상자가 표시됩니다.
새 플래그를 사용하면 기기 검색이 시작되는 시기와 UX의 특정 요소의 동작을 제어할 수 있습니다.
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
기본값은 true
입니다. 이 플래그는 GCKCastOptions::disableDiscoveryAutostart
플래그가 false
로 설정된 경우에만 적용됩니다.
true
로 설정하면 사용자가 GCKUICastButton
를 처음 탭할 때 Cast 기기 검색이 시작됩니다. 사용자에게 로컬 네트워크 권한이 필요한 이유를 알리는 정보 메시지가 표시됩니다. 이 메시지 뒤에 iOS 14 LNA 메시지가 표시됩니다.
메시지가 확인되면 Cast 기기 검색이 시작됩니다.
후속 앱 실행에서는 GCKUICastButton
가 항상 표시됩니다.
false
로 설정하면 기기 검색이 GCKCastOptions::disableDiscoveryAutostart
플래그 값을 기반으로 시작됩니다.
자주 묻는 질문(FAQ)
Cast SDK v4.4.8 및 Xcode 12로 Cast 발신기 앱을 다시 출시하면 어떻게 되나요?
Apple에서 네트워킹 멀티캐스트 사용 권한을 획득하지 않으면 앱이 로컬 네트워크에서 Cast 기기를 찾지 못할 수 있습니다. Apple은 전송 지원을 위한 목적으로만 멀티캐스트 사용 권한을 부여하지 않습니다. Xcode 12로 빌드하려면 Cast 4.6.0으로 앱을 출시해야 합니다.
새로운 Cast SDK로 앱을 다시 출시할 경우 사용자가 iOS 13 또는 이전 환경에서 무엇을 실행하나요?
앱을 다시 출시하기 전과 동일한 사용자 환경이 계속 표시됩니다. 사용자에게 표시되는 변경사항은 iOS 14에서 실행되는 사용자로 제한됩니다.
새 버전의 Cast SDK가 출시된 후에 앱을 업데이트하려면 어떻게 해야 하나요?
- 로컬 네트워크 사용 설명을 포함하도록 앱의
Info.plist
을 업데이트합니다. NSBonjourServices
를 앱의Info.plist
에 추가하고 Cast 및 Bonjour 서비스 ID와 앱 ID를 제공합니다.- Cast SDK 4.6.0을 사용하도록 발신자 앱을 업그레이드하세요.
- Apple App Store에 앱을 다시 출시합니다.
4.6.0으로 업그레이드한 후 맞춤 기기 선택 도구에 기기가 표시되지 않는 이유는 무엇인가요?
이는 표준 기기 선택 도구 대신 맞춤 기기 선택 도구를 사용하는 경우 발생할 수 있는 알려진 문제입니다. Cast SDK 4.4.8 이하 버전에서는 기기 검색이 자동으로 실행되었습니다. 버전 4.6.0부터는 기기 검색을 시작하려면
GCKDiscoveryManager
클래스의 startDiscovery
메서드를 명시적으로 호출해야 합니다.
이렇게 변경한 이유는 앱을 처음 검사한 후 로컬 네트워크 액세스 (LNA) 권한 메시지가 표시되기 때문입니다. 이로 인해 앱의 임의의 위치에 권한 대화상자가 표시될 수 있습니다.
앱의 맞춤 기기 선택 도구를 빌드하는 개발자는 iOS 14에서 처음으로 기기 스캔을 시작하기 전에 일회성 전면 광고를 제공해야 합니다.
iOS 13
iOS 13부터 Google Cast SDK를 사용하는 앱에 영향을 미치는 새로운 권한 요구사항이 도입되었습니다.
Google Cast SDK v4.4.3부터 Bluetooth® 권한이 필요 없는 게스트 모드 지원 없이 추가 SDK를 사용할 수 있습니다. 이는 개발자 사이트와 새로운 google-cast-sdk-no-bluetooth
CocoaPods에서 모두 사용할 수 있습니다. 게스트 모드 기능은 발신기 앱이 게스트 모드 지원 기기에 표시되는 PIN을 사용하여 동일한 네트워크에 있지 않아도 특정 물리적 거리 내에 있는 Cast 기기를 감지할 수 있는 기능입니다.
iOS 13용 앱을 준비하려면 다음을 결정해야 합니다.
게스트 모드 지원을 유지해야 함
Privacy - Bluetooth Always Usage Description
키를 추가해야 합니다.- 사용자의 Bluetooth® 사용을
Info.plist
에 설명하는 문자열을 추가합니다.
게스트 모드 지원을 삭제해야 함
- 앱에서 Cast Bluetooth® 요구사항을 요구하지 않습니다.
- Bluetooth® 지원 없이 최신 버전의 Google Cast SDK를 통합합니다.
- 이는 개발자 사이트와 새로운
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로 업데이트하거나 전송 버튼이 표시되지 않을 수 있습니다. iOS 13에서 안정적인 전송 환경을 보장하려면 Cast SDK 4.4.4로 업그레이드해야 합니다.
- 게스트 모드를 통합하는 방법에 관한 자세한 내용은 개발자 문서를 참고하거나 Google Cast SDK를 사용하고 블루투스®는 지원하지 않는 게스트 모드를 선택 해제하는 방법을 알아보세요.