AVPlayerViewController autolayout errors in iOS 11.4

I am receiving the following autolayout errors when embedding AVPlayerViewController in a view. None of these errors were seen in iOS 11.0. None of this appears to be based on my code as I am not using UIStackView. These appear to be related to controls of AVPlayerViewController. Any inputs on how to resolve them?


[LayoutConstraints] Unable to simultaneously satisfy constraints.

Probably at least one of the constraints in the following list is one you don't want.

Try this:

(1) look at each constraint and try to figure out which you don't expect;

(2) find the code that added the unwanted constraint or constraints and fix it.

(

"<NSLayoutConstraint:0x1c4290220 'UISV-canvas-connection' UILayoutGuide:0x1c41b4ac0'UIViewLayoutMarginsGuide'.top == _UILayoutSpacer:0x1c41cac80'UISV-alignment-spanner'.top (active)>",

"<NSLayoutConstraint:0x1c4290270 'UISV-canvas-connection' UILayoutGuide:0x1c41b4ac0'UIViewLayoutMarginsGuide'.bottom == _UILayoutSpacer:0x1c41cac80'UISV-alignment-spanner'.bottom (active)>",

"<NSLayoutConstraint:0x1c428fe10 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide:0x1c41b4ac0'UIViewLayoutMarginsGuide']-(12)-| (active, names: '|':UIStackView:0x14be459f0 )>",

"<NSLayoutConstraint:0x1c428fb40 'UIView-Encapsulated-Layout-Height' UIStackView:0x14be459f0.height == 0 (active)>",

"<NSLayoutConstraint:0x1c428fd70 'UIView-topMargin-guide-constraint' V:|-(12)-[UILayoutGuide:0x1c41b4ac0'UIViewLayoutMarginsGuide'] (active, names: '|':UIStackView:0x14be459f0 )>"

)


Will attempt to recover by breaking constraint

<NSLayoutConstraint:0x1c4290270 'UISV-canvas-connection' UILayoutGuide:0x1c41b4ac0'UIViewLayoutMarginsGuide'.bottom == _UILayoutSpacer:0x1c41cac80'UISV-alignment-spanner'.bottom (active)>


Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.

The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.

2018-08-09 19:35:17.465632+0530 XYZ[1322:423073] [LayoutConstraints] Unable to simultaneously satisfy constraints.

Probably at least one of the constraints in the following list is one you don't want.

Try this:

(1) look at each constraint and try to figure out which you don't expect;

(2) find the code that added the unwanted constraint or constraints and fix it.

(

"<NSLayoutConstraint:0x1c0287670 'UISV-canvas-connection' UILayoutGuide:0x1c41b4ac0'UIViewLayoutMarginsGuide'.leading == _UILayoutSpacer:0x1c41cb9a0'UISV-ordering-spanner'.leading (active)>",

"<NSLayoutConstraint:0x1c0287530 'UISV-canvas-connection' UILayoutGuide:0x1c41b4ac0'UIViewLayoutMarginsGuide'.trailing == _UILayoutSpacer:0x1c41cb9a0'UISV-ordering-spanner'.trailing (active)>",

"<NSLayoutConstraint:0x1c428faf0 'UIView-Encapsulated-Layout-Width' UIStackView:0x14be459f0.width == 0 (active)>",

"<NSLayoutConstraint:0x1c428fdc0 'UIView-leftMargin-guide-constraint' H:|-(12)-[UILayoutGuide:0x1c41b4ac0'UIViewLayoutMarginsGuide'](LTR) (active, names: '|':UIStackView:0x14be459f0 )>",

"<NSLayoutConstraint:0x1c428fe60 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x1c41b4ac0'UIViewLayoutMarginsGuide']-(12)-|(LTR) (active, names: '|':UIStackView:0x14be459f0 )>"

)


Will attempt to recover by breaking constraint

<NSLayoutConstraint:0x1c0287530 'UISV-canvas-connection' UILayoutGuide:0x1c41b4ac0'UIViewLayoutMarginsGuide'.trailing == _UILayoutSpacer:0x1c41cb9a0'UISV-ordering-spanner'.trailing (active)>


Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.

The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.

2018-08-09 19:35:18.029885+0530 XYZ[1322:423073] [] <<<< AVOutputDeviceDiscoverySession (FigRouteDiscoverer) >>>> -[AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl outputDeviceDiscoverySessionDidChangeDiscoveryMode:]: Setting device discovery mode to DiscoveryMode_None (client: XYZ)

2018-08-09 19:35:18.284334+0530 XYZ[1322:423073] [] <<<< AVOutputDeviceDiscoverySession (FigRouteDiscoverer) >>>> -[AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl outputDeviceDiscoverySessionDidChangeDiscoveryMode:]: Setting device discovery mode to DiscoveryMode_Presence (client: XYZ)

2018-08-09 19:35:18.599174+0530 XYZ[1322:423379] [] <<<< AVOutputDeviceDiscoverySession (FigRouteDiscoverer) >>>> -[AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl outputDeviceDiscoverySessionDidChangeDiscoveryMode:]: Setting device discovery mode to DiscoveryMode_Presence (client: XYZ)

Replies

I believe this is a known bug in iOS 11, and there's no workaround for AVPlayerViewController. OTOH, everything still works, and you can ignore the messages.


IIRC, you can avoid them by using AVPlayerLayer instead of AVPlayerViewController, but of course the setup is a bit different, and you may lose some UI niceties that AVPlayerViewController normally provides.