Share a screen using Daily’s iOS SDK
Screen sharing enables the local participant to display the contents of their screen to other users in the meeting. Before you begin, ensure that you understand how to start a video call. For details, see the iOS Overview. Screen share for iOS is composed by two parts: broadcast upload extension, screen share support inside daily-ios. This guide will describe how to implement screen sharing using the iOS SDK, show you some examples, and point you to where you can learn more.How to create a broadcast upload extension
In order to use the screen sharing functionality for iOS, you will need to create a Broadcast Upload Extension for your app. The DailySystemBroadcast framework provides all the files needed for capturing the contents of the user’s screen and sending it to Daily. Follow the steps below to learn how to create a new broadcast upload extension using Daily’s framework.-
Ensure that
DailySystemBroadcastframework is integrated into the project. You can find the details about how to install broadcast extension framework in our installation guide. - Create a new Broadcast Upload Extension target in Xcode.

- Do not select “include UI extension”.
- Recommended naming:
ScreenCaptureExtension, since it’s an independent process responsible for ingesting and processing the captured video & audio frames that the OS captures and passing it to your app, which then actually sends the media via WebRTC.
-
Add the
DailySystemBroadcastframework as dependency of your app target and of your new ScreenCaptureExtension target. - Add the same App Group capability in your main app target as well as in this new Broadcast Upload Extension target.
-
Replace your
SampleHandler.swiftdefault code that has been created by this code below:
- Remember to change the
appGroupIdentifierto use yours.
-
Edit your app target’s
Info.plist- Add an
RTCAppGroupIdentifierkey with your app group identifier. - Add a
DailyScreenCaptureExtensionBundleIdentifierkey with your screen share extension’s bundle identifier.
Info.plist, it should look like this: - Add an
How to start the broadcast upload extension
In order to start the broadcast upload extension, you should use the native componentRPSystemBroadcastPickerView.
The following code snippet shows how you should setup the RPSystemBroadcastPickerView to open the right extension.
How to start a screen share
The following code snippet shows how you might start a screen share:To confirm that screen sharing started, listen for
callClient(CallClient, inputsUpdated: InputSettings) and check the property screenVideo.