The local notifications plugin was initialised without iOS settings, so
flutter_local_notifications threw "iOS settings must be set" before the
app registered with Apple, and restoreMode swallowed the error. iPhones
never sent the relay an APNs token for message wake-ups or a VoIP token
for calls.
- add DarwinInitializationSettings and request iOS permission explicitly
- register with Apple before asking for notification permission (silent
wake-ups do not need it)
- send the VoIP token on its own (PLATFORM_APNS with an empty endpoint)
when no APNs token is available yet
- record a failed registration so the chat list shows it instead of
failing silently
- drop the force cast of rootViewController in AppDelegate and the unused
SceneDelegate