Pārlūkot izejas kodu

cocoa: Use `-[NSApplicationDelegate applicationSupportsSecureRestorableState]`.

This prevents warnings at startup on macOS Sonoma (14.0).
Ryan C. Gordon 1 gadu atpakaļ
vecāks
revīzija
7d25a443c4
1 mainītis faili ar 17 papildinājumiem un 0 dzēšanām
  1. 17 0
      src/video/cocoa/SDL_cocoaevents.m

+ 17 - 0
src/video/cocoa/SDL_cocoaevents.m

@@ -138,6 +138,7 @@ static void Cocoa_DispatchEvent(NSEvent *theEvent)
 
 - (id)init;
 - (void)localeDidChange:(NSNotification *)notification;
+- (BOOL)applicationSupportsSecureRestorableState:(NSApplication *)app;
 @end
 
 @implementation SDLAppDelegate : NSObject
@@ -310,6 +311,22 @@ static void Cocoa_DispatchEvent(NSEvent *theEvent)
     SDL_SendDropComplete(NULL);
 }
 
+- (BOOL)applicationSupportsSecureRestorableState:(NSApplication *)app
+{
+    // This just tells Cocoa that we didn't do any custom save state magic for the app,
+    // so the system is safe to use NSSecureCoding internally, instead of using unencrypted
+    // save states for backwards compatibility. If we don't return YES here, we'll get a
+    // warning on the console at startup:
+    //
+    // ```
+    // WARNING: Secure coding is not enabled for restorable state! Enable secure coding by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState: and returning YES.
+    // ```
+    //
+    // More-detailed explanation:
+    // https://stackoverflow.com/questions/77283578/sonoma-and-nsapplicationdelegate-applicationsupportssecurerestorablestate/77320845#77320845
+    return YES;
+}
+
 @end
 
 static SDLAppDelegate *appDelegate = nil;