Bruno Pantaleão Gonçalves c29e9409f3
Fix crash on iOS 15/16 due to @Observable in PassThroughWindow (#4334)
Replace @Observable macro with ObservableObject pattern to fix crash
during app launch on iOS 15-16 devices.

Root cause:
- PassThroughWindow used @Observable macro (iOS 17+ API)
- Despite @available(iOS 18, *), Swift compiled metadata into binary
- During app launch, Realm's objc_copyClassList() triggered metadata
loading for all classes
- @Observable generated code referenced symbols unavailable on iOS 15/16
- Result: null pointer dereference crash at startup

The fix:
- Replace @Observable with ObservableObject + @Published properties
- These patterns work on iOS 13+, safe for iOS 15/16
- No behavioral changes, same observation mechanism
- Maintains @available(iOS 18, *) for class usage

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-09 23:34:35 +00:00
..