Daher wurde die Version 2.20.31 (veröffentlicht im März 2020) des WhatsApp-Clients um die Unterstützung des Dunkelmodus erweitert. Dies ist eine reine iOS 13-Funktion, und nach dem Erscheinungsbild scheint es sich um eine vollständig native Implementierung zu handeln. Ich denke, es ist sicher anzunehmen, dass die App jetzt mit iOS SDK 13.0 oder höher kompiliert wird.
Ab iOS 13 verlangt Apple nun, dass der native Anrufbildschirm angezeigt wird, wenn eine VoIP-Benachrichtigung empfangen wird. Andernfalls erhält die App keine weiteren VoIP-Benachrichtigungen. In früheren Versionen von iOS scheinen einige Apps (einschließlich WhatsApp) "gefälschte" eingehende VoIP-Anrufe zu verwenden, um die App im Hintergrund still zu aktivieren, wenn der Benutzer versucht, den Webclient zu verwenden, damit dieser dann eine Verbindung herstellen und Daten direkt austauschen kann mit dem Telefon.
Ab der neuesten Version scheint der Webclient jedoch trotz der von Apple eingeführten Einschränkungen weiterhin wie zuvor zu funktionieren. Mit einem Debugger kann beobachtet werden, wie die iOS-App aufwacht, wenn der Benutzer den Webclient auf einem PC öffnet. Es werden jedoch nie Anrufbildschirme angezeigt. Dies kann wiederholt und so oft durchgeführt werden, wie wir möchten.
Die Protokolle von WhatsApp scheinen zu bestätigen, was oben geschrieben steht :
default 17:09:44.515731+0000 callservicesd Call source <CXXPCCallSource 0x111ecb0a0 identifier=UKFA9XBX6K.net.whatsapp.WhatsApp isConnected=1 processIdentifier=417 isPermittedToUsePublicAPI=1 isPermittedToUsePrivateAPI=0> registered with configuration <CXProviderConfiguration 0x111e9bb40 localizedName=WhatsApp ringtoneSoundURL=(null) iconTemplateImageData=0x0 maximumCallGroups=1 maximumCallsPerCallGroup=1 supportsAudioOnly=1 supportsVideo=1 supportsEmergency=0 supportsVoicemail=0 supportsCurrentPlatform=1 includesCallsInRecents=1 audioSessionID=1151157 supportedHandleTypes=2>
Wenn wir dies mit unserer App versuchen, sind die Ergebnisse ganz anders :
error 18:56:19.949023+0000 callservicesd Killing VoIP app com.xxxxx.xxxxx.xxxxx because it failed to post an incoming call in time.
Irgendeine Idee, was hier los ist? Verwendet WhatsApp eine undokumentierte Problemumgehung oder nutzt es eine private API?
Vielen Dank im Voraus für alle Antworten.