Apple’s Bugs

· All filed feedbacks

iOS screen capture via USB is built on a decade-old AVFoundation path that hasn’t kept pace with modern hardware. Many of WireView’s rough edges trace back to framework bugs and gaps I can’t work around. I’ve filed all of these with Apple Feedback; they’re listed here for transparency and so affected users know the root cause.

Device Discovery & Trust

FB21253552 — iPhone not available in QuickTime after approving trust dialog until cable is reconnected

When you connect an iPhone that hasn’t previously trusted this Mac, tapping “Trust” on the device doesn’t cause it to appear as a capture source. You have to physically unplug and replug the cable. This affects all apps using kCMIOHardwarePropertyAllowScreenCaptureDevices, not just QuickTime.

FB22281473 — AVCaptureSession produces no frames and fires no error when iOS device screen capture trust is revoked

If an iPhone’s screen capture trust is silently revoked (e.g., after resetting Location & Privacy on device), AVCaptureSession keeps reporting isRunning == true but delivers no sample buffers and fires no error or interruption notification. From the app’s perspective, this is indistinguishable from the device being locked — there’s no reliable signal to tell users what went wrong or what to do.

FB21608780 — Tapping “Stop Mirroring” in Control Center breaks screen capture until reboot

If the iOS device’s Control Center has a Screen Mirroring tile, tapping “Stop Mirroring” while a capture session is active leaves the device in a broken state: it appears as an AVCaptureDevice but sends no video signal. A full device reboot is required to recover.

Locked Device & Stale Frames

FB21253528 — QuickTime shows frozen preview when connected iPhone is locked, with no indication the content is stale

Locking the connected iPhone causes the QuickTime preview to freeze on the last frame with no overlay, status change, or any visual cue. If recording, the frozen frame is captured indefinitely. There’s nothing in the API to distinguish this from a device simply displaying a static screen.

FB21253535 — Screen capture continues streaming stale frames when device locks

Companion to FB21253528, filed from the iOS side. The capture stream should either go black, send a placeholder, or fire a session interruption when the device locks. Instead it silently repeats the last live frame.

Color & Wide Gamut

FB15689935 — QuickTime iPhone screen capture does not support P3

iOS device screen capture over USB delivers sRGB regardless of what the device is displaying. Wide-gamut (Display P3) content is clipped or compressed. Filed November 2024.

FB21253515 — iOS Screen Recording delivers sRGB, clipping Display P3 colors

A more detailed follow-up to FB15689935 with reproduction steps using the WebKit color gamut test page. The capture pipeline simply doesn’t pass wide-color frames through.

FB22281424 — AVCaptureMovieFileOutput breaks gamma/color space when capturing iOS device screen via USB

Adding AVCaptureMovieFileOutput to a capture session triggers a code path in -_updateDeviceActiveFormatsAndActiveConnections that attempts to reconcile the active color space — but silently skips the setActiveColorSpace: call for DAL devices (USB-connected iOS devices) because isWideColorSupported returns false. The format is still updated unconditionally, creating a gamma mismatch. The captured video looks washed out. Workaround: use two separate AVCaptureSession instances.

Rotation

FB21253500 — QuickTime Movie Recording from iPhone stops and discards footage when device rotates

Rotating the connected iOS device mid-recording immediately terminates the recording session. No file is saved, no warning is shown. Any footage captured up to that point is gone. This is because a rotation changes the stream’s format description, and the recording infrastructure doesn’t gracefully handle that mid-stream change.

Feature Requests

FB21363104 — ScreenCaptureKit should support capturing connected iOS devices

The current iOS screen capture mechanism — setting kCMIOHardwarePropertyAllowScreenCaptureDevices and using AVCaptureDevice — is old, hasn’t been updated in years, and responsible for most of the bugs on this page. ScreenCaptureKit is the modern, actively developed framework for screen capture on macOS. Migrating iOS device capture to SCKit would (ideally) fix wide color, provide proper interruption signaling, and give developers a far better API to work with.

Everything Else

FB22359008 — MenuBarExtra label with live Text date style (.timer, .offset, .relative) causes 100% CPU spike and unbounded memory growth

I wanted to use the Text view’s date style formatter thing in the menu bar, but it locked up the app and just kept eating memory until it crashed.