# Troubleshooting tips for screen sharing

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

We have compiled a list of common scenarios that you may encounter when
attempting to implement the screen sharing functionality into your Zoom
iOS SDK application. Most scenarios incorporate "workarounds" to address
the majority of commonly encountered scenarios.

## Nothing happens when I begin broadcasting

This may be caused by the [App Group
ID](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_application-groups).
The App Group ID must be valid and passed to four different locations in
Xcode. Furthermore, you must ensure that the App Group ID are all
identical within these locations. Otherwise, the screen share
functionality will fail to appear within the meeting.

1. Pass the ID as a string value into your **MobileRTCSDKInitContext**
   object wherever you initialize the SDK.

```swift
let mobileInitContext = MobileRTCSDKInitContext()

mobileInitContext.appGroupId = "group.com.yourTeam.yourAppGroupID"
```

2. Pass the ID as a string value into your `MobileRTCScreenShareService` object within your **BroadCast Extension** target. This is likely within a class called "SampleHandler".

```swift
self.screenShareService = MobileRTCScreenShareService()

screenShareService?.appGroup = "group.com.yourTeam.yourAppGroupID"
```

3. Set the App Group in the "Signing & Capabilities" tab of your main target.

4. Set the App Group in the "Signing & Capabilities" tab of your Broadcast Extension target.

## I am using the `MobileRTCSample` application, but I still can't broadcast

As of version 5.4.54802.0124, screen sharing via Broadcasting is
functional. However, the [App Group
ID](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_application-groups),
"group.zoom.us.MobileRTCSampleExtensionReplayKit" which is set by
default, will not work for you. You must provide your own App Group ID
within the four locations mentioned in the above section. Also, verify
that the provisioning profile settings are properly set.

## I don't want to use a Broadcast Extension, but I would like to broadcast it to the meeting

The SDK uses **ReplayKit** to send the video and audio data from the
device. Without using a broadcast extension, the SDK cannot properly
broadcast.

## I imported both `MobileRTC.framework` and `MobileRTCScreenShare.framework`, but I am getting errors when I build

-   Import the **MobileRTC.framework** into your main target, and not in
    the Broadcast Extension target. Make sure it is set to "Embed &
    Sign".

-   Import the **MobileRTCScreenShare.framework** into your Broadcast
    Extension target, and not your main target. Make sure it is set to
    "Do not embed".

## After importing `MobileRTCScreenShare.framework` into my Broadcast Extension target, I received over 50 errors

-   Make sure you have also imported the other required frameworks into
    your Broadcast Extension target: **CoreGraphics**, **CoreMedia**,
    **CoreVideo**, **ReplayKit**, **VideoToolbox**, and set them all to
    "Do not embed".

-   If you are using Objective-C in your Broadcast Extension target,
    make sure your SampleHandler source file is named
    "SampleHandler.mm", and not "SampleHandler.m"

-   If you are using Swift in your Broadcast Extension target, make sure
    you have added "-lc++" to "Other linker flags" in your build
    settings.

## I do not see my app in the broadcast picker

Follow the workaround steps documented in the [Nothing happens when I begin broadcasting](#nothing-happens-when-i-begin-broadcasting) section.

---
