ReplayKit only records one window?

Originator:joachimb
Number:rdar://32796508 Date Originated:June 15 2017, 8:48 PM
Status:Closed/wontfix Resolved:June 16 2017, 6:21 PM
Product:iOS + SDK Product Version:11
Classification:Bug Reproducible:Always
 
Area:
ReplayKit

Summary:
Thank you thank you thank you for `startCapture(handler:completionHandler:)`!!! Now that RPK is a viable method for Lookback to perform UX research, I ran into an issue: ReplayKit only seems to record the main application window?

I have two overlay windows in my test app, and neither seems to be part of the final recording; only the main window is.

Attaching sample project to demonstrate issue.

Steps to Reproduce:
1. Make a project with two UIWindows
2. Present them both on screen, so one is visible over the other; bottom being key and top being just visible.
3. Use ReplayKit to record the screen

Expected Results:
4. In the Preview, both windows are visible

Observed Results:
4. Only the bottom-most key window is visible

Version:
iOS 11 developer beta 1

Notes:
Affects both startRecording and startCapture

Configuration:
iPad 12", iPad 10"

Attachment: https://www.dropbox.com/s/bkiv27ys9kd75f6/RPK%20multiwindow%20recording%20bug.zip?dl=0

Comments

September 15 2017, 11:58 AM Since Lookback is an SDK, we can't dictate the window layout of apps using Lookback. This is turning into a real issue as we're migrating to ReplayKit and a lot of app windows aren't being captured. Is there any way we could make you reconsider a "isCapturedByReplayKit" property of UIWindow instead of only recording the main window with no workaround?

June 17 2017, 2:26 AM Could I suggest a BOOL "isCapturedByReplayKit" category to UIWindow instead? So it's an explicit API contract instead of an undocumented side effect. Much appreciated :)

Apple Developer Relations June 16 2017, 6:21 PM Please know that our engineering team has determined that this issue behaves as intended based on the information provided. The only way in which a developer can currently keep views out of the recording is to put them in a different UIWindow. So we cannot break this paradigm with the current API. We suggest that you put your view in the main window if you want them to be burned in.


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!