Our app performs security checks (compromised-device detection, certificate pinning setup) once per app launch inside SceneDelegate's willConnectTo:options: and on scene-becomes-active.
Given developer coverage states every app participates in iPhone Duo's multi-window support whether it opts in or not, and each window is presumably backed by its own scene/SceneDelegate instance: does opening a second window on the inner display spawn an independent scene that would re-run (or fail to run) this per-scene setup?
For an app with security checks tied to scene lifecycle rather than app-level AppDelegate lifecycle, is there existing guidance on whether such checks should run per-scene, be coordinated across scenes via a shared app-level state, or whether Apple recommends opting out of multi-window support entirely for apps where per-window security state doesn't make sense (e.g. a single authenticated session shouldn't have divergent security state across two windows of itself)?
Given developer coverage states every app participates in iPhone Duo's multi-window support whether it opts in or not,
All apps participate in iPhone Duo's multitasking, in that you cannot prevent multitasking with any sort of API in your app:
https://developer.apple.com/videos/play/tech-talks/111464/?time=184
This does not mean there is a requirement for your app to support multiple scenes, as that can often be a larger task to reason about data models for separate UI. instances.
That being said, supporting multiple scenes is something you should investigate when you have availability, as this functionality is on more operating systems and devices (iOS, iPadOS, Mac Catalyst, and VisionOS).
and each window is presumably backed by its own scene/SceneDelegate instance:
Just like on iPad, each user-level window is a scene with its own SceneDelegate. So yes, opening a second window would create a separate scene, potentially hitting your check when that scene reaches UIScene.ActivationState.foregroundActive.
For an app with security checks tied to scene lifecycle rather than app-level AppDelegate lifecycle, is there existing guidance on whether such checks should run per-scene
App life cycle still exists and is the aggregation of your connected scene's activation states. While the UIApplicationDelegate life cycle callbacks are deprecated in preference to the ones on UISceneDelegate, the associated app life cycle notifications are not, and will remain for any sort of overall app life cycle state considerations.
So it really just depends on your app. If this is truly something you only need to do once per process launch, then looking at a relevant UIApplication lifecycle notification may suffice.
Otherwise, if this is more about a particular instance of your UI and what that UI will show (because they can easily be for different purposes based on how the scene connects and for what reason), then doing this on a per-scene basis would make more sense.