iOS 14부터 운영체제에서 Cast 사용자 환경에 영향을 미치는 새로운 제한사항과 권한을 적용합니다. 또한 앱에 Cast SDK를 빌드하는 방식에도 영향을 미칩니다. 앱이 최신 버전의 iOS에서 Cast 기능을 유지하려면 이러한 권한 변경사항을 처리하도록 업데이트해야 합니다.
iOS 14
개발자는 iOS Cast 전송자 앱을 Google Cast SDK v4.6.0 이상으로 업데이트해야 합니다. 이러한 버전은 iOS 14 및 해당 요구사항을 지원합니다.
iOS 14부터 로컬 네트워크에서 기기를 검색하는 애플리케이션은 이제 로컬 네트워크 기기를 찾아 연결할 수 있는 일회성 권한 대화상자를 사용자에게 표시합니다. Cast 플랫폼은 로컬 네트워크를 사용하여 Cast 기기를 검색하고 제어하므로 사용자가 권한을 거부하면 전송할 수 없습니다.
사용자 환경을 개선하기 위해 표준 기기 선택기를 사용하는 앱의 SDK에 UX 수정사항이 적용됩니다. 이러한 UX 수정사항을 통해 사용자에게 로컬 네트워크 액세스 권한이 필요한 이유와 로컬 네트워크 기기 액세스가 사용 중지된 경우 전송을 사용 설정하는 방법을 더 명확하게 알릴 수 있습니다.
v4.4.8 이하를 사용하는 Cast SDK 버전으로 빌드된 앱은 Xcode 11.7 이하로 빌드되는 한 계속 작동합니다. Xcode 12 이상으로 iOS 14를 빌드하는 경우 Cast 앱이 계속 제대로 작동하도록 Cast SDK v4.6.0 이상으로 업데이트하는 것이 좋습니다.
Cast iOS SDK v4.6.0 이상은 CocoaPods 설정에 따라 CocoaPods로 다운로드하거나 수동 설정에 따라 수동으로 다운로드할 수 있습니다. 이 출시에는 Xcode 12로 빌드된 앱이 네트워크에서 Cast 기기를 찾을 수 있도록 기본 검색 메커니즘이 변경되었습니다. 이제 전송 버튼이 항상 표시됩니다. 사용자가 전송 버튼을 탭할 때 사용할 수 있는 기기가 없으면 로컬 네트워크 액세스 권한을 다시 사용 설정하는 방법을 포함하여 기기를 사용할 수 없는 이유에 관한 안내가 표시된 대화상자가 표시됩니다.
Cast SDK 변경사항
처음 전송하는 경우
사용자가 전송을 처음 시도하면 로컬 네트워크 액세스 (LNA) 전면 광고 대화상자가 표시되어 로컬 네트워킹 액세스가 필요한 이유를 설명하고, 그 뒤에 Apple에서 제공하는 iOS 로컬 네트워크 액세스 권한 메시지가 표시됩니다. 아래 모형은 흐름을 보여줍니다.
전송을 사용할 수 없음
iOS 전송자 SDK 4.6.0부터는 사용자가 Wi-Fi에 연결되어 있으면 항상 Cast 버튼이 표시됩니다. Cast 기기를 사용할 수 없는 경우 Cast 버튼을 탭하면 아래 모형과 같이 Cast를 사용할 수 없는 이유에 관한 힌트를 제공하는 대화상자가 표시됩니다.
iOS 14에서 앱 업데이트
프로젝트에 Cast iOS SDK 4.8.3 추가
CocoaPods를 사용하는 경우 pod update를 사용하여 프로젝트에 4.8.3 SDK를 추가합니다.
이 메시지는 모의에 표시된 대로 iOS 로컬 네트워크 액세스 대화상자의 일부로 표시됩니다.
Apple App Store에 앱 다시 출시하기
가능한 한 빨리 4.8.3을 사용하여 앱을 다시 출시하는 것이 좋습니다.
맞춤설정
전송 기기 검색 시작
기본적으로 Cast 기기 검색은 사용자가 Cast 버튼 (GCKUICastButton)을 처음 탭할 때 시작됩니다. iOS 14로 업그레이드한 후 사용자가 로컬 네트워크에서 Cast 앱을 처음 사용하려고 하면 새로운 LNA 인스턴스가 표시되고 그 뒤에 iOS 로컬 네트워크 액세스 권한 대화상자가 표시됩니다.
기기 검색이 시작되는 시점과 UX의 특정 요소 동작을 제어할 수 있는 새로운 플래그가 제공됩니다.
true로 설정하면 사용자가 처음으로 GCKUICastButton을 탭할 때 Cast 기기 검색이 시작됩니다. 로컬 네트워크 권한이 필요한 이유를 사용자에게 알리는 정보 메시지가 표시됩니다. 이 메시지 다음에 iOS 14 LNA 메시지가 표시됩니다.
메시지를 확인한 후 Cast 기기 검색이 시작됩니다.
Cast SDK v4.4.8 및 Xcode 12를 사용하여 Cast 전송기 앱을 다시 출시하면 어떻게 되나요?
Apple에서 네트워킹 멀티캐스트 권한을 획득하지 않은 경우 앱이 로컬 네트워크에서 Cast 기기를 검색하지 못할 수 있습니다.
Apple은 Cast 지원만을 목적으로 멀티캐스트 권한을 부여하지 않습니다.
Xcode 12로 빌드하려는 경우 Cast 4.6.0으로 앱을 출시해야 합니다.
새 Cast SDK로 앱을 다시 출시하면 iOS 13 이하에서 실행되는 사용자에게 어떤 환경이 제공되나요?
앱 재출시 전과 동일한 사용자 환경이 계속 표시됩니다. 사용자에게 표시되는 변경사항은 iOS 14에서 실행되는 사용자에게만 적용됩니다.
새 버전의 Cast SDK가 출시되면 앱을 업데이트하려면 어떻게 해야 하나요?
앱의 Info.plist를 업데이트하여 로컬 네트워크 사용 설명을 포함합니다.
앱의 Info.plist에 NSBonjourServices를 추가하고 Cast 및 앱 ID의 Bonjour 서비스 이름을 제공합니다.
Cast SDK 4.6.0을 사용하도록 전송기 앱을 업그레이드합니다.
Apple 앱 스토어에 앱을 다시 출시합니다.
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에서 모두 사용할 수 있습니다.
앱 분석
현재 사용 중인 iOS SDK 버전에 따른 분류는 다음과 같습니다.
iOS 12 SDK 이하로 빌드된 앱
권장 조치 iOS 13에서 실행하면 기기 검색 성능이 저하될 수 있지만 여전히 작동합니다. 가능한 경우 개발자는 Cast SDK v4.4.4로 업그레이드하는 것이 좋습니다.
iOS 13에서는 사용자에게 앱에 블루투스 권한을 부여하라는 메시지가 표시됩니다.
iOS 13 SDK로 빌드된 앱
조치 필요: Cast SDK 4.4.4로 업데이트하세요. 사용자가 위치 권한을 부여하지 않으면 전송 버튼이 표시되지 않을 수 있습니다. iOS 13에서 안정적인 전송 환경을 보장하려면 Cast SDK 4.4.4로 업그레이드해야 합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-05(UTC)"],[[["\u003cp\u003eiOS 14 introduces new local network permissions that require updates to Cast sender apps for maintaining Cast functionality.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers should update to Google Cast SDK v4.6.0 or later, add necessary entries to \u003ccode\u003eInfo.plist\u003c/code\u003e, and re-release their apps for iOS 14 compatibility.\u003c/p\u003e\n"],["\u003cp\u003eUsers will experience a one-time local network access permission prompt when attempting to Cast for the first time after updating to iOS 14.\u003c/p\u003e\n"],["\u003cp\u003eWith Cast SDK v4.6.0 or later, the Cast button is always visible, and a dialog provides guidance if Cast devices are unavailable.\u003c/p\u003e\n"],["\u003cp\u003eiOS 13 users should update to Cast SDK v4.4.4 or later to ensure reliable casting experience.\u003c/p\u003e\n"]]],["iOS 14 requires Cast app updates: Use Cast SDK v4.6.0 or later, prompting users for local network access permission. Apps must add `NSBonjourServices` and `NSLocalNetworkUsageDescription` to `Info.plist`, including Bonjour service names and a local network usage message. SDK v4.6.0 changes discovery to work with Xcode 12. SDK 4.8.3 is recommended. Apps with custom device pickers need to manually call `startDiscovery`. The Cast button always appears on Wi-Fi; if devices are unavailable, a dialog provides troubleshooting guidance.\n"],null,["# iOS Permissions and Discovery\n\nStarting with iOS 14, the operating system will enforce new restrictions and\npermissions that affect the Cast user experience. It will also affect how you\nbuild the Cast SDK into your app. For your app to maintain Cast functionality\nwith the latest versions of iOS, you must make updates to handle these\npermissions changes.\n\niOS 14\n------\n\nDevelopers should update their iOS Cast sender apps to the Google Cast SDK\nv4.6.0 or later. These versions provide support for iOS 14 and its requirements.\n\nBeginning with iOS 14, applications that scan for devices on the local network\nwill now prompt users with a one-time permissions dialog to find and connect to\nlocal network devices. The Cast platform uses the local network to discover and\ncontrol Cast devices, so if the user denies permission, they will not be able to\ncast.\n\nTo improve the user experience, we are making some UX modifications to the SDK\nfor those apps that are using the standard device picker. These UX modifications\nmake it more obvious to users why local network access permissions are needed,\nas well as how to enable casting if local network device access has been\ndisabled.\n\nApps built with versions of the Cast SDK using v4.4.8 or earlier will continue\nto work as long as they are built with Xcode 11.7 or earlier. If you are\nbuilding for iOS 14 with Xcode 12 or above, we recommend you update to the Cast\nSDK v4.6.0 or later to ensure that your Cast app will continue to work properly.\n\nThe Cast iOS SDK v4.6.0 or later can be downloaded with CocoaPods by following\nthe [CocoaPods setup](/cast/docs/ios_sender#cocoapods_setup) or manually by\nfollowing the [manual setup](/cast/docs/ios_sender#manual_setup). This release\nincludes changes to the underlying discovery mechanism to allow apps that are\nbuilt with Xcode 12 to find Cast devices on the network. The Cast button should\nnow always display. If no devices are available when the user taps on the Cast\nbutton, a dialog will be displayed providing guidance on why devices may not be\navailable, including information on how to re-enable local-network access\npermission.\n\n### Cast SDK changes\n\n#### First-time casting\n\nThe first time a user attempts to Cast, a local network access (LNA)\ninterstitial dialog will appear explaining why local networking access is\nneeded, followed by the Apple-provided iOS local network access permissions\nprompt. The mocks below illustrate the flow:\n\n#### Cast unavailable\n\nStarting with iOS sender SDK 4.6.0, the Cast button always appears when the user\nis connected to Wi-Fi. When Cast devices are unavailable,\ntapping on the Cast button brings up a dialog that gives the user\nhints as to possible reasons Cast is unavailable, as shown in the mocks below:\n\n### Updating your app on iOS 14\n\n1. **Add the Cast iOS SDK 4.8.3 to your project**\n\n\n If using CocoaPods, use `pod update` to add the 4.8.3 SDK to your project.\n\n\n Otherwise,\n [pull in the SDK manually](https://developers.google.com/cast/docs/ios_sender#manual_setup).\n | **Note** : If you built a custom device picker in your app, then you will need to explicitly call the `startDiscovery` method on the [`GCKDiscoveryManager`](/cast/docs/reference/ios/interface_g_c_k_discovery_manager) class to initiate device discovery. Automatic scanning was disabled by default beginning with the v4.5.0 release of the Cast SDK.\n2. **Add `NSBonjourServices` to your `Info.plist`**\n\n\n Specify `NSBonjourServices` in your `Info.plist` to\n allow local network discovery to succeed on iOS 14.\n\n\n You will need to add both `_googlecast._tcp` and\n `_\u003cyour-app-id\u003e._googlecast._tcp` as services for device\n discovery to work properly.\n\n\n The appID is your receiverID, which is the same ID that is defined in your\n `GCKDiscoveryCriteria`.\n\n\n Update the following example `NSBonjourServices` definition and\n replace \"ABCD1234\" with your appID. \n\n ```scdoc\n \u003ckey\u003eNSBonjourServices\u003c/key\u003e\n \u003carray\u003e\n \u003cstring\u003e_googlecast._tcp\u003c/string\u003e\n \u003cstring\u003e_ABCD1234._googlecast._tcp\u003c/string\u003e\n \u003c/array\u003e\n ```\n3. **Add `NSLocalNetworkUsageDescription` to your\n `Info.plist`**\n\n\n We strongly recommend that you customize the message shown in the Local\n Network prompt by adding an app-specific permission string in your app's\n `Info.plist` file for the\n `NSLocalNetworkUsageDescription` such as to describe Cast\n discovery and other discovery services, like DIAL. \n\n ```genshi\n \u003ckey\u003eNSLocalNetworkUsageDescription\u003c/key\u003e\n \u003cstring\u003e${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi\n network.\u003c/string\u003e\n ```\n\n\n This message will appear as part of the iOS Local Network Access dialog as\n shown in the mock.\n4. **Re-release your app to the Apple App Store**\n\n\n We recommend you also re-release your app using 4.8.3 as\n soon as possible.\n\n#### Customizations\n\n**Cast device discovery initiation**\n\nBy default, Cast device discovery is initiated the first time the user taps\nthe Cast button (`GCKUICastButton`). If this is the first time the user has\nattempted to use the Cast app on the local network after upgrading to iOS\n14, the new LNA interstitial will appear, followed by the iOS Local Network\nAccess permissions dialog.\n\nA new flag is available to allow you to control when device discovery starts\nand the behavior of certain elements of the UX:\n\n[`startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)`](/cast/docs/reference/ios/interface_g_c_k_cast_options#a1e701e7d1852d1e09ec2aee936b46413)\n\nThe default value is `true`. This flag is only applicable when the flag\n[`GCKCastOptions::disableDiscoveryAutostart`](/cast/docs/reference/ios/interface_g_c_k_cast_options#a6cfeb6f96487fd0e1fc68c31928d3e3d)\nis set to `false`.\n\nIf set to `true`, Cast device discovery starts when a user taps on the\n`GCKUICastButton` for the first time. An informational message will be\ndisplayed to the user letting them know why local network permission is\nneeded. Following that message, the iOS 14 LNA message will be displayed.\nCast device discovery starts after the message is acknowledged.\n\nIn subsequent App launches, `GCKUICastButton` always displays.\n\nIf set to `false`, device discovery will start based on the value of the\nflag\n[`GCKCastOptions::disableDiscoveryAutostart`](/cast/docs/reference/ios/interface_g_c_k_cast_options#a6cfeb6f96487fd0e1fc68c31928d3e3d).\n\n### Frequently asked questions\n\n#### What happens if I re-release my\nCast sender app with the Cast SDK v4.4.8 and Xcode 12?\n\nYour app may not be able to discover Cast devices on the local network\nunless you have obtained a networking multicast entitlement from Apple.\nNote that Apple will not be granting multicast entitlements solely for the\npurpose of supporting Cast.\n**If you plan to build with Xcode 12, you should release your app\nwith Cast 4.6.0.** \n\n#### If I re-release my app with the new Cast SDK, what\nwill my users running on iOS 13 or earlier experience?\n\nThey will continue to see the same user experience they had prior to\nre-release of your app. User-visible changes are limited to users\nrunning on iOS 14. \n\n#### What will I need to do to update my app once the new\nversion of the Cast SDK is released?\n\n- Update your app's `Info.plist` to include a local network usage description.\n- Add `NSBonjourServices` to your app's `Info.plist` and provide the Bonjour service names for Cast and your app ID.\n- Upgrade your sender app to use Cast SDK 4.6.0.\n- Re-release your app to the Apple app store. \n\n#### Why did devices stop showing up in my custom device\npicker after I upgraded to 4.6.0?\n\nThis is a known issue that can happen if you are using a custom device\npicker instead of the standard device picker. In version 4.4.8 of the\nCast SDK and earlier, device scanning was automatic. Beginning in version\n4.6.0, you will need to explicitly call the `startDiscovery`\nmethod on the\n[`GCKDiscoveryManager`](/cast/docs/reference/ios/interface_g_c_k_discovery_manager) class to initiate device discovery.\n\nThe reason for this change is because the Local Network Access (LNA)\npermissions prompt will appear after the app has scanned for the first\ntime. This could result in permissions dialogs appearing at random places\nin your app.\n\nDevelopers who build a custom device picker for their app will be\nexpected to provide an one-time interstitial prior to intiating device\nscanning for the first time in iOS 14.\n\niOS 13\n------\n\nWith iOS 13, new permissions requirements were introduced which impact\napps using the Google Cast SDK.\n\nStarting with Google Cast SDK v4.4.3, an additional SDK is available that does\nnot require Bluetooth® permission. This is available both on the [developer\nsite](/cast/docs/ios_sender#google_cast_sdk) and on the new\n`google-cast-sdk-no-bluetooth` Cocoapods.\n| **Warning:** The Guest Mode feature gave the ability for the sender app to be able to detect cast devices within a certain physical proximity without being on the same network, using a PIN displayed on guest mode-enabled devices. This feature is deprecated.\n\n### App breakdown\n\nHere is a breakdown depending on the version of the iOS SDK you are currently\nusing:\n\n#### Apps built with the iOS 12 SDK or earlier\n\n- **Action Recommended**. Device discovery performance may decrease when running on iOS 13, but will still be functional. We highly recommend developers upgrade to Cast SDK v4.4.4 when available.\n- iOS 13 will prompt users to grant Bluetooth® permissions to the app.\n\n#### Apps built with the iOS 13 SDK\n\n- **Action Required**: Update to Cast SDK 4.4.4 or the cast button may not appear if the user does not grant location permission. Upgrading to Cast SDK 4.4.4 is necessary to ensure a reliable casting experience on iOS 13."]]