Issues with IOS SDK Screen SHare

Hi Team…
I am getting errors when integrating zoom SDK for integrating screen share functionality. Especially I am getting an error when converting your Objective-C code to swift as guided through this link https://marketplace.zoom.us/docs/sdk/native-sdks/iOS/mastering-zoom-sdk/in-meeting-function/zoom-meeting-ui/screen-share. I followed till step 4 and did not get any error but when proceed further steps not able to go smooth. Mainly, I could not found an equivalent code for step 5 and step 7 in swift. Please help me with detailed guidance or through some swift sample app. Thanks in advance.

Info:
1.Xcode version - 11.3.1
2. iOS version - iOS 13
3. Is removed scene delegate - yes. removed

Screenshots below:

Remove MobileRTCScreenShare.framework and add it again to your project When adding the MobileRTCScreenShare.framework only select Your Broadcast Upload Extension as Add to target. Make sure your checked Copy items if needed.

For the Step 5 Code you do not need swift code.
When you create your Broadcast Upload extension, choose language as Objective-C and uncheck Include UI Extension Then you can simple copy and replace the code in the SampleHandler.m file which has automatically been created for you when adding your Broadcast Upload Extension.

Make sure inside SampleHandler.m you replace self.screenShareService.appGroup = @“Your group id”;

Then, In your AppDelegate. swift file just before your call
let initialise: MobileRTCSDKInitContext = MobileRTCSDKInitContext.init()
// add this :
initialise.appGroupId = “Your group id
MobileRTC.shared().initialize(initialise)

For Step 7:
import ReplayKit

extension ViewController: MobileRTCMeetingServiceDelegate{
func onClickShareScreen(_ parentVC: UIViewController) {
print(“Share Screen”)
let broadcastView = RPSystemBroadcastPickerView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width / 2, height: UIScreen.main.bounds.size.height / 2))
broadcastView.preferredExtension = “Replace Your Broadcast Extension Bundle ID
let buttonPressed = NSSelectorFromString(“buttonPressed:”)
if broadcastView.responds(to: buttonPressed) {
broadcastView.perform(buttonPressed, with: nil)
}
}
}
I hope this helps.

Hi @IOSDev

Thank you for the response. We implemented these steps and we did not get any error.

however, the share screen option is still not visible.

Blockquote

extension ViewController: MobileRTCMeetingServiceDelegate{
func onClickShareScreen(_ parentVC: UIViewController) {
print(“Share Screen”)
let broadcastView = RPSystemBroadcastPickerView(frame: CGRect(x: 0, y: 0, width:

Blockquote

Is the line "print (“Share Screen”) critical to show?

Please find attached screenshots. Are we missing anything?

No the line "print (“Share Screen”) is not critical.

Can you share screenshots for your build phases for App Target and Extension both.

Also Make sure you have added Permissions in Info.plist.

Also screen shot for General Tabs for both targets.

Hi @IOSDev

Thank you for the quick response. Please find attached the screenshots:

Hi Team,

We have integrated ZOOM iOS SDK for connecting with friends. We were able to Start / Join meetings with connecting audio, video, and screen share.

Our app has a sequence of images to be shown with animation on it. In iOS Zoom SDK, this animation is displayed on the guest side when screen sharing is on. It looks choppy and some animations were skipped to the guest.

After analyzed, there is no choppiness if we start meeting with Default UI. But in our case, we need custom UI because we have seen there is no way to present any other app screens on top of Default UI.

But in Customized UI we are facing that choppiness regularly.

FYI, I have attached both video reference links.

Default UI: https://drive.google.com/file/d/1yZlcoy5us8dJKBvWrIDd-saR1QseXo4q/view?usp=sharing

Custom UI: https://drive.google.com/file/d/10xwiMdP_HcmIg_uUuOL9QfXqfnUDXj53/view?usp=sharing

Hi @IOSDev,

Could you please help out this for me. I was struggled in last couple of weeks regarding this issue.

Please give your suggestions on it

Can you try this:
Select your Zoom_Share_Screen extension> General > Frameworks and Libraries > For MobileRTCScreenShare.framework change it from Embed Without Signing to Embed & Sign.

Also make sure you have implemented func onClickShareScreen(_ parentVC: UIViewController) {}

Hi Pandiyaraj,
I don’t work for zoom, I am just trying to help people who are facing similar issues as I did. However I would be happy to help you but please start a new Topic so that Zoom’s support team can also help you.

Hi @IOSDev

Thanks for the quick reply. Yes I able to share screen, the problem is my screen looks choppiness to the participant’s side while screen sharing.

I am using the Custom UI meeting, because while in meeting users can allow navigating in my app. But in iOS Zoom client and Default UI meeting don’t have that choppiness.

FYI, I have attached both video reference links.

Default UI: https://drive.google.com/file/d/1yZlcoy5us8dJKBvWrIDd-saR1QseXo4q/view?usp=sharing

Custom UI: https://drive.google.com/file/d/10xwiMdP_HcmIg_uUuOL9QfXqfnUDXj53/view?usp=sharing

Hi @IOSDev

Thank you for the response

Tried this but still not able to see the option.

Attached screenshots :

Everything looks fine from what I can see. Can you try to remove the SDK and try adding the sdk again. Use the all version which supports both Simulator and Devices

1 Like