Why my ios only share my own app screen, not share other app screen

Description
follow share screen document, I integrate share screen in my app.
but it only can share my own app. please review my video;

Which version?
zoom-sdk-ios-4.6.15084.0206

To Reproduce(If applicable)
Steps to reproduce the behavior:

  1. Go to ‘…’
  2. Click on ‘…’
  3. Scroll down to ‘…’
  4. See error

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

I have find the answer, post it out for other developer.

Hi guan_bj,

Thanks for the post and glad to hear that you have found the answer. Yes, the ReplayKit only works in the foreground(https://developer.apple.com/documentation/replaykit) and when it needs to work in the background, it requires background mode to access the video buffer so that the SDK could fetch and keep broadcasting while the SDK app is in the background.

Hope this helps. Thanks!

1 Like

Hi Carson
In fact I get a new issue. same code has different result in ipad and iphone. In iphone share screen works well, includes voice, video sharing is smooth.
In Ipad voice always stop in several seconds later; and video stops, too.
Whether I should add some code in this function?

- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType {
    [self.screenShareService processSampleBuffer:sampleBuffer withType:sampleBufferType];
    switch (sampleBufferType) {
        case RPSampleBufferTypeVideo:
            // Handle video sample buffer
            break;
        case RPSampleBufferTypeAudioApp:
            // Handle audio sample buffer for app audio
            break;
        case RPSampleBufferTypeAudioMic:
            // Handle audio sample buffer for mic audio
            break;
            
        default:
            break;
    }
}

I test several devices to get these results:

Hi guan_bj,

Thanks for the post and the code snippet. For the callback processSampleBuffer, actually you only need the line:

[self.screenShareService processSampleBuffer:sampleBuffer withType:sampleBufferType];

The switch statement is not needed(But keeping it will not cause any issues).

I have just tested the screen sharing feature in our demo app with iPhone X(13.3.1) and iPad Pro 3rd-gen(13.3.1), I have tested the cases “share UI, share video, and share audio”. Everything is working fine.

The broadcast extension relies on the ReplayKit, which might not exist on some older devices(Per https://developer.apple.com/documentation/replaykit, the ReplayKit is available on iOS 9.0+). You could use this website to identify the iPad devices you are using: https://support.apple.com/en-us/HT201471, if the OS version on your devices are above iOS 9+ and still causing issues, please let us know the model number and iOS version so that we could further investigate this.

PS: found a list of devices that do not support ReplayKit:https://support.spryfox.com/hc/en-us/articles/219399537-What-are-the-requirements-for-using-ReplayKit-iOS-devices-only-

Thanks!

Hi Carson
Thanks your quickly replay.
This is my ipad mini device version which does not push screen to other end user. In fact zoom client works well on it. So I guess there are some other knowledge that I don’t get.

with same app we compare ipad mini(12.4.5) and ipad pro(13.3.1). mini can’t list my app name;

Hi guan_bj,

Thanks for the reply. It is very strange that under the same scenario, the zoom client works but the SDK does not. Basically the SDK is a customizable version of the Zoom client.

Could you use the following code to check whether the device can use ReplayKit before actually start the sharing?

[RPScreenRecorder sharedRecorder].available

In fact, based on my research online, it seems like some other users have reported that the ReplayKit is not working very well with the device iPad Mini 2.

Are you seeing any error message on iPad Mini 2 when starting the screen sharing?

Hope this helps.

Hi Carson
Thanks your help. Yesterday I find the root cause that is a stupid error of not set target deploy to ios 12(by default it’s 13).

Getting over this issue, I still have two issues: 1) In Ipad sharing video or audio always stop under share screen mode. But in Iphone it’s not reproduced. 2)It often get stoped error, especially I touch web page based UI, example this one.

Hi guan_bj,

Thanks for the reply. It is strange that the screen sharing stops frequently on iPad (and only on iPad). Are you seeing any errors in the console when the shared screen stopped?

Thanks!

Hi [guan_bj]

Have you ever tried to uninstall your app, then restart the ipad, and then build your app? This is maybe solved. We found that some ios systems and devices of previous apple did have such a bug

Thanks

Murray
I have tried as you said, but this issue still exists. it’s very easy to reproduce under IPad screen sharing, and never happens in IPhone.
image

In the same ipad device and same meeting ID, zoom app works well, so I guess the root cause is project setting. this is my project setting. BTW, Is there any special setting in Info.plist file?



this is video for share screen issue: https://sy-tools.oss-cn-beijing.aliyuncs.com/shareissue.mp4

1 Like

Hi guan_bj,

Thanks for the reply and the video. The engineering team is currently investigating this, will provide update shortly.

1 Like

Hi Carson
I am sure it’s SDK bug, because I go back the pre-version SDK(zoom-sdk-ios-4.4.57220.1211), it works perfect.
BTW, Mac platform SDK( v4.6.15088.0210 has a bug. When host is not in meeting, user try to join a meeting, most of PC will pop up a waiting host window; but several PC crash. Windows SDK has no this issue.

1 Like

Hi guan_bj,

Thanks for the reply. Regarding the iOS issue, we are still investigating, thanks for the info. Regarding the Mac SDK issue, it sounds like you have enabled the waiting room feature(https://support.zoom.us/hc/en-us/articles/115000332726-Waiting-Room), but we are able to reproduce the crash. Could you provide the SDK log and .crash log for us to further investigate?

Thanks!

which folder can I find the sdk log and .crash log?

The SDK log location is: ~/Library/Logs/appName and the crash log location is: ~/Library/Logs/DiagnosticReports/(appName)

Thanks!

crash log

Thanks for the log file. After analyzing the log file, it seems like the crash is on the UI. Are you using Custom UI on Mac SDK? Could you provide a little bit more details on the steps to reproduce this issue?

If you are using Custom UI, the following doc could be helpful: https://marketplace.zoom.us/docs/sdk/native-sdks/macos/custom-ui-feature

Thanks!

I never customize UI, I always use " [[ZoomSDK sharedSDK] initSDK: NO ];"

Hi Carson
I verify IOS sharing screen on today’s release( v4.6.15805.0403), and I found this issue still exists