在 xamarin 的调试模式下,Voip 通知未从 Apns 接收

Voip notifications are not receiving from Apns in debug mode in xamarin

我正在开发一个调用应用程序,我们在其中使用 pushkit 通知问题是我没有在调试模式下使用开发配置文件接收通知。我在 Apple 帐户的 App Identifier 上安装了证书并上传了推送通知证书。

而它在发布模式下工作。 在服务器端,我们使用 APNs

您需要在 entitlements.plist 中列出 development

    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>aps-environment</key>
        <string>development</string>
    </dict>
    </plist>

您还需要确保您的 APNS 设置使用 Sandbox 而不是 Production。我不记得这也适用的具体设置,但很容易发现。

还要检查一件事:PushKit 令牌不等于设备的推送通知令牌。确保在发送 VOIP 通知时输入的是 PushKit 令牌,而不是传统的推送通知令牌。可以通过在 AppDelegate.cs

上实施 IPKPushRegistryDelegate 来访问您的 VOIP 令牌

在 APNS 中进行一些小的更正 server-side 代码修复了问题

request.Headers.Add("apns-id", Guid.NewGuid().ToString("D"));

request.Headers.Add("apns-push-type", "voip");

希望这对面临此问题的其他人有所帮助