WhatsApp 웹 클라이언트는 여전히 최신 iOS 업데이트 (SDK 버전 13.0 이상)와 어떻게 작동합니까?


9

따라서 WhatsApp 클라이언트 버전 2.20.31 (2020 년 3 월 릴리스)에 다크 모드 지원이 추가되었습니다. 이것은 iOS 13 전용 기능이며 모양과 느낌에서 완전히 고유 한 구현으로 보입니다. 앱이 iOS SDK 13.0 이상으로 컴파일되고 있다고 가정하는 것이 안전하다고 생각합니다.

iOS 13부터 Apple은 이제 VoIP 알림을받을 때마다 기본 통화 화면을 표시해야합니다. 그렇지 않으면 앱에서 더 이상 VoIP 알림을받지 않습니다. 이전 버전의 iOS에서는 사용자가 웹 클라이언트를 사용하려고 할 때 백그라운드로 백그라운드에서 앱을 자동으로 깨우기 위해 "가짜"들어오는 VoIP 호출을 사용하는 일부 앱 (WhatsApp 포함)이 후자에 직접 연결하여 데이터를 교환 할 수 있습니다. 전화로.

그러나 최신 버전에서 웹 클라이언트는 Apple의 제한 사항에도 불구하고 여전히 이전과 같이 작동하는 것으로 보입니다. 디버거를 사용하면 사용자가 PC에서 웹 클라이언트를 열 때마다 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.

여기서 무슨 일이 일어나고 있는지 아십니까? WhatsApp은 문서화되지 않은 해결 방법을 사용하거나 일종의 개인 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.