Jadi dukungan mode gelap telah ditambahkan ke versi 2.20.31 (dirilis pada bulan Maret 2020) dari klien WhatsApp. Ini adalah fitur iOS 13-only, dan dari tampilan & rasa itu tampaknya merupakan implementasi asli sepenuhnya. Saya pikir aman untuk mengasumsikan bahwa aplikasi tersebut sekarang sedang dikompilasi dengan iOS SDK 13.0 atau lebih tinggi.
Masalahnya, pada iOS 13, Apple sekarang mengharuskan layar panggilan asli untuk ditampilkan setiap kali pemberitahuan VoIP diterima - jika tidak, aplikasi tidak akan menerima pemberitahuan VoIP lebih lanjut. Pada versi iOS sebelumnya, beberapa aplikasi (termasuk WhatsApp) tampaknya menggunakan panggilan VoIP masuk "palsu" untuk membangunkan aplikasi secara diam-diam ketika pengguna mencoba menggunakan klien web, sehingga yang terakhir kemudian dapat terhubung dan bertukar data secara langsung dengan telepon.
Namun, pada versi terbaru, klien web tampaknya masih berfungsi seperti sebelumnya meskipun ada pembatasan yang diperkenalkan oleh Apple. Menggunakan debugger adalah mungkin untuk mengamati aplikasi iOS bangun setiap kali pengguna membuka klien web pada PC, tetapi tidak ada layar panggilan yang pernah ditampilkan. Ini dapat dilakukan berulang kali dan sesering yang kita inginkan.
Log dari WhatsApp tampaknya mengkonfirmasi apa yang tertulis di atas :
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>
Jika kami mencoba melakukan ini dengan aplikasi kami, hasilnya sangat berbeda :
error 18:56:19.949023+0000 callservicesd Killing VoIP app com.xxxxx.xxxxx.xxxxx because it failed to post an incoming call in time.
Adakah yang tahu apa yang terjadi di sini? Apakah WhatsApp menggunakan solusi tidak terdokumentasi atau mengeksploitasi semacam API pribadi?
Terima kasih sebelumnya atas jawaban apa pun.