WhatsApp Webクライアントは、最新のiOSアップデート(SDKバージョン13.0以降)でどのように機能しますか?


9

そのため、ダークモードのサポートがWhatsAppクライアントのバージョン2.20.31(2020年3月にリリース)に追加されました。これはiOS 13のみの機能で、ルックアンドフィールからは完全にネイティブな実装のように見えます。アプリがiOS SDK 13.0以降でコンパイルされていると想定しても安全だと思います。

実は、iOS 13の時点で、AppleはVoIP通知を受信するたびにネイティブコール画面を表示することを要求しています。それ以外の場合、アプリはそれ以上VoIP通知を受信しません。iOSの以前のバージョンでは、一部のアプリ(WhatsAppを含む)が「偽の」着信VoIPコールを使用して、ユーザーがWebクライアントを使用しようとするとバックグラウンドでアプリを静かに起動し、後者が直接接続してデータを交換できるようになりました電話で。

ただし、最新バージョンの時点では、Appleによる制限にもかかわらず、Webクライアントは以前と同じように機能しているように見えます。デバッガーを使用すると、ユーザーがPCでWebクライアントを開くたびにiOSアプリが起動するのを観察できますが、通話画面は表示されません。これは繰り返し、何度でも行うことができます。

WhatsAppのログは、上記の内容を確認しているようです。

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>

アプリでこれを実行しようとすると、結果はかなり異なります。

error   18:56:19.949023+0000    callservicesd   Killing VoIP app com.xxxxx.xxxxx.xxxxx because it failed to post an incoming call in time.

ここで何が起こっているのでしょうか?ドキュメントに記載されていない回避策を使用したり、プライベートAPIを利用したりしていますか?

回答ありがとうございます。

回答:


6

これはWhatsAppの最新の資格ファイルです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.developer.icloud-container-identifiers</key>
    <array>
        <string>57T9237FN3.net.whatsapp.WhatsApp</string>
    </array>
    <key>com.apple.developer.pushkit.unrestricted-voip</key>
    <true/>
    <key>com.apple.developer.ubiquity-container-identifiers</key>
    <array>
        <string>57T9237FN3.net.whatsapp.WhatsApp</string>
    </array>
    <key>application-identifier</key>
    <string>UKFA9XBX6K.net.whatsapp.WhatsApp</string>
    <key>com.apple.developer.carplay-messaging</key>
    <true/>
    <key>aps-environment</key>
    <string>production</string>
    <key>com.apple.developer.icloud-container-environment</key>
    <string>Production</string>
    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>applinks:api.whatsapp.com</string>
        <string>applinks:v.whatsapp.com</string>
        <string>applinks:chat.whatsapp.com</string>
        <string>applinks:wa.me</string>
    </array>
    <key>com.apple.developer.siri</key>
    <true/>
    <key>com.apple.developer.team-identifier</key>
    <string>57T9237FN3</string>
    <key>com.apple.developer.icloud-services</key>
    <array>
        <string>CloudDocuments</string>
        <string>CloudKit</string>
    </array>
    <key>com.apple.security.application-groups</key>
    <array>
        <string>group.net.whatsapp.WhatsApp.shared</string>
        <string>group.com.facebook.family</string>
        <string>group.net.whatsapp.WhatsApp.private</string>
        <string>group.net.whatsapp.WhatsAppSMB.shared</string>
        <string>group.net.whatsapp.family</string>
    </array>
</dict>
</plist>

この特定の資格は、彼らが着信を報告しないことを許可されている理由のようです:

com.apple.developer.pushkit.unrestricted-voip

この資格に関するドキュメントが見つからないので、Appleから特別な許可が与えられていると確信しています。


さて、それで謎は解決しました。どうもありがとうございました!
DPR
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.