Skip to content

Scene Lifecycle required for iOS 27 SDK #8

Description

@Markos-Th09

Summary

The iOS 27 SDK enforces strict UISceneDelegate lifecycle adoption for window management, state restoration, and backgrounding transitions. Our current application setup relies on legacy UIApplicationDelegate flow, which causes lifecycle state mismatches, black screens on resume, and potential rejection or crashes under the iOS 27 SDK toolchain.


Proposed Solutions

Solution 1: Implement a Minimal Custom UISceneDelegate

Intercept SDL2's default application setup by defining a custom UISceneDelegate wrapper in Objective-C++ to forward lifecycle events to our engine.

  • Pros:
    • Minimal codebase disruption
    • Fast implementation time
  • Cons:
    • Risk of internal conflicts with SDL2’s internal SDLUIKitDelegate

Solution 2: Drop-in Upgrade to SDL3 via sdl2-compat

Keep our current SDL2 application code, but link against the sdl2-compat dynamic wrapper built on top of SDL3.

  • Pros:
    • Automatically inherits SDL3’s modernized iOS scene lifecycle and CAMetalLayer handling
    • Zero required changes to engine code
  • Cons:
    • Adds an abstraction layer dependency
    • Potential edge-case behavior differences

Solution 3: Full Migration to SDL3

Directly upgrade the engine from SDL2 to SDL3 APIs across all subsystems (Video, Input, Audio, Events).

  • Pros:
    • Better long-term solution
    • SDL3 Main Callbacks are more well suited for the iOS app lifecycle
  • Cons:
    • High engineering scope and testing effort
    • Requires updating non-iOS platform backends simultaneously

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions