SFAuthorizationPluginView::update() doesn't trigger MacOS to call view()

Has anybody else experienced something similar? This is on the login screen.

I call update() and it doesn't call me back with view()

2025-08-21 17:04:38.669 Db SecurityAgentHelper-arm64[1134:2df1] [***:LoginView] calling update()

Then silence...

Answered by DTS Engineer in 855055022

So, just to be clear:

  • You have an authorisation plug-in with a mechanism that runs an SFAuthorizationPluginView subclass.
  • That subclass calls its update() method.
  • You’re expected the view’s host to rebuild your view by calling view(for:).
  • That works when your mechanism is run in normal circumstances, for example, when invoked by system.login.console.
  • But fails when your mechanism is invoked by the screen saver, that is, system.login.screensaver.

Is that right?

If so, that’s clearly a bug and I encourage you to file it as such. Please post your bug number, just for the record.

Make sure to attach a sysdiagnose log taken shortly after reproducing the problem. It’d also help if you included a copy of the QAuthPlugins project that’s been tweaked to illustrate this specific issue.

Share and Enjoy

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

This appears to work if I call my mechanism using my own custom right:

2025-08-21 17:17:45.206 Db SecurityAgentHelper-arm64[42339:2271ef] [xxx:Controller] Calling update()
2025-08-21 17:17:45.206 Db SecurityAgentHelper-arm64[42339:2271ef] [xxx:LoginView] calling update()
2025-08-21 17:17:45.206 Db SecurityAgentHelper-arm64[42339:2271ef] [xxx:LoginView] [MacOS] view() got view type Identity and Credentials.
2025-08-21 17:17:45.206 Db SecurityAgentHelper-arm64[42339:2271ef] [xxx:Controller] setViewType()

but doesn't work in the desktop login screen.

Accepted Answer

So, just to be clear:

  • You have an authorisation plug-in with a mechanism that runs an SFAuthorizationPluginView subclass.
  • That subclass calls its update() method.
  • You’re expected the view’s host to rebuild your view by calling view(for:).
  • That works when your mechanism is run in normal circumstances, for example, when invoked by system.login.console.
  • But fails when your mechanism is invoked by the screen saver, that is, system.login.screensaver.

Is that right?

If so, that’s clearly a bug and I encourage you to file it as such. Please post your bug number, just for the record.

Make sure to attach a sysdiagnose log taken shortly after reproducing the problem. It’d also help if you included a copy of the QAuthPlugins project that’s been tweaked to illustrate this specific issue.

Share and Enjoy

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

SFAuthorizationPluginView::update() doesn't trigger MacOS to call view()
 
 
Q