เว็บไคลเอ็นต์ WhatsApp ยังคงทำงานกับการอัปเดต iOS ล่าสุด (SDK เวอร์ชัน 13.0+) ได้อย่างไร


9

ดังนั้นการสนับสนุนโหมดมืดจึงถูกเพิ่มเข้าไปในเวอร์ชั่น 2.20.31 (วางจำหน่ายในเดือนมีนาคม 2020) ของไคลเอ็นต์ WhatsApp นี่เป็นคุณสมบัติ iOS 13 เท่านั้นและจากรูปลักษณ์ที่ดูเหมือนว่าเป็นการติดตั้งแบบเนทีฟอย่างสมบูรณ์ ฉันคิดว่ามันปลอดภัยที่จะสมมติว่าตอนนี้แอพกำลังรวบรวมกับ iOS SDK 13.0 ขึ้นไป

สิ่งนี้เป็นของ iOS 13 ตอนนี้ Apple ต้องการหน้าจอการโทรมาตรฐานเพื่อแสดงทุกครั้งที่ได้รับการแจ้งเตือน VoIP ไม่เช่นนั้นแอปจะไม่ได้รับการแจ้งเตือน VoIP อีกต่อไป ใน iOS เวอร์ชันก่อนหน้าบางแอป (รวมถึง WhatsApp) ดูเหมือนจะใช้การโทร VoIP "ปลอม" ที่เข้ามาเพื่อปลุกแอปในพื้นหลังเมื่อผู้ใช้พยายามใช้เว็บไคลเอนต์เพื่อให้หลังสามารถเชื่อมต่อและแลกเปลี่ยนข้อมูลโดยตรง ด้วยโทรศัพท์

อย่างไรก็ตามในเวอร์ชั่นล่าสุดเว็บไคลเอ็นต์ยังคงทำงานได้เหมือนเดิมแม้จะมีข้อ จำกัด ที่ Apple แนะนำ การใช้ดีบักเกอร์เป็นไปได้ที่จะสังเกตเห็นแอป 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.