I don't love this, but I found a workaround if you happen to be creating your simulators via xcrun simctl:
defaults write com.apple.dt.Xcode DVTDeviceVisibilityPreferences -dict-add "$(xcrun simctl create "iPhone 8 Plus" "iPhone 8 Plus" com.apple.CoreSimulator.SimRuntime.iOS-16-0)" 1
This takes the resulting UUID from creating an iPhone 8 Plus simulator with xcrun, and adds it to the dictionary as Always shown. If you're creating simulators automatically, you can adjust your script to automatically change the behavior such that they're always shown. I found I had to restart Xcode after generating the simulators in order to see them as run destinations...
If you want to clear the preferences before adding new keys, you can run the following command beforehand:
defaults write com.apple.dt.Xcode DVTDeviceVisibilityPreferences -dict
Post
Replies
Boosts
Views
Activity
I'm having the same issue -- pretty annoying considering we frequently delete and recreate simulators to have wiped, fresh simulators for snapshot testing :|
Setting preferredForwardBufferDuration explicitly to 0.0 was required to avoid the bug. Leaving it at whatever default value seems to continue to allow the bug to manifest.
I submitted a report via the feedback assistant (FB9221518), and have narrowed down the STR:
Play an HLS item in AVPlayer or AVQueuePlayer, setting preferredForwardBufferDuration to 20.0
Pause the item after a second or two, and wait in real time for the item's total duration to elapse
The currently paused item will no longer be playable, and the actionAtItemEnd behavior will trigger, even though the item hasn't reached its end, having remained paused near the beginning of playback.
We found that setting the preferredForwardBufferDuration to 20.0 was required in order to reproduce the issue. When setting to 0.0 the player behaves as expected and the bug does not manifest.
This occurs for both AVPlayer and AVQueuePlayer, and the exact manifestation of the bug depends on the actionAtItemEnd property.
For AVQueuePlayer, it'll either advance to the next item (or nil), or the paused frame still will remain frozen on the AVPlayerLayer.
For AVPlayer, the paused frame will remain frozen. In any scenario, the item that was paused when the item's duration had elapsed in real time would no longer be playable.