Troubleshooting

When implementing screen sharing with the Zoom Video SDK for iOS, you may run into the common scenarios below. Most include workarounds that address the majority of cases.

Nothing happens when I begin broadcasting or I do not see my app in the broadcast picker

This may be caused by the App Group ID. The App Group ID must be valid and passed to four different locations in Xcode. Furthermore, you must ensure that the App Group ID is identical in all of these locations. Otherwise, the screen share functionality will fail to appear within the session.

Solution

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

    let initParams = ZoomVideoSDKInitParams()
    initParams.appGroupId = "group.com.yourTeam.yourAppGroupID"
    
  2. Pass the ID as a string value into your ZoomVideoSDKScreenShareService object within your Broadcast Extension target. This is likely within a class called SampleHandler.

    self.screenShareService = ZoomVideoSDKScreenShareService()
    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 sample application, but I still can't broadcast

As of version 5.2.42099.1207, screen sharing via broadcasting is functional. However, the App Group ID, "group.us.zoom.videosdk," which is set by default, will not work for you.

Solution

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 session

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

Solution

You must use a broadcast extension.

I imported both ZoomVideoSDK.xcframework and ZoomVideoSDKScreenShare.framework, but I am getting errors when I build

Caused by incorrect importing.

Solution

  • Import the ZoomVideoSDK.xcframework into your main target, and not in the Broadcast Extension target. Make sure it is set to "Embed & Sign".
  • Import the ZoomVideoScreenShareSDK.xcframework into your Broadcast Extension target, and not your main target. Make sure it is set to "Do not embed".

After importing ZoomVideoSDKScreenShare.framework into my Broadcast Extension target, I received over 50 errors

Caused by missing imports or naming issues.

Solution

  • 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.