SFAuthorizationPluginView subclass lingers on screen after login

Issue happens with system.login.screensaver. After my SFAuthorizationPluginView sets a result allowing login, my view remains on screen for about eight seconds. What makes my view disappear? I notice that my plugin mechanism just gets a destroy call.

Answered by pnelson in 799002022

I was indeed a case of my plugin view not getting released.

I’ve seen behaviours like this before, but I’ve never fully understood all of the cases where it can happen.

Does the problem reproduce with the LoginUIAuthPlugin target? If so, what OS release are you testing this on?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

LoginUIAuthPlugin does not show this issue. I think that my view has a reference keeping it retained. Trying to track this down now.

Accepted Answer

I was indeed a case of my plugin view not getting released.

I have another issue though. When user clicks cancel, my view stays on the screen and the initial login view is presented over it. How to fix this? My plugin sets the result to .userCanceled but I never get a deactivate or destroy call.

It looks like this is a case where I want to restart the login process. I am now calling RequestInterrupt instead of setting the result. Everything works correctly now.

SFAuthorizationPluginView subclass lingers on screen after login
 
 
Q