Xcode 9 中缺少 Voip(IP 语音)
Posted
技术标签:
【中文标题】Xcode 9 中缺少 Voip(IP 语音)【英文标题】:Voip(Voice over IP) missing in Xcode 9 【发布时间】:2017-07-11 04:57:28 【问题描述】:我在我的应用程序中使用 pushKit,但 didUpdatePushCredentials
代表从未调用过。 xcode 9 没有Voice over IP
功能 --> 后台模式 --> IP 语音
我正在关注这个链接..implement pushkit
证书再次生成但不工作。
【问题讨论】:
我的应用程序也使用 PushKit,如果使用 Xcode 9(当前为 beta 5)构建,则不再工作。我看到推送消息到达 ios 系统控制台(APSCourier Received message for enabled topic '...' with payload...)但消息永远不会到达我的应用程序中的 didReceiveIncomingPushWithPayload。 【参考方案1】:虽然 Xcode 9 已正式发布,但功能上仍然没有 VoIP。
我通过打开 Info.plist 作为源代码并手动将“voip”添加到 UIBackgroundModes 解决了我的问题。
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
<string>voip</string>
<string>fetch</string>
<string>remote-notification</string>
</array>
【讨论】:
这是正确的解决方案,voip 功能不再存在。添加此项将启用对 didUpdateCredentials 的调用。 已在 plist 中添加,但仍未显示在功能中 @VineeshTP 虽然它没有显示在功能中,但它仍然有效。 非常感谢。这行得通。我不明白为什么他们从功能中删除了“IP 语音”选项,否则我们将无法接收令牌。我以为我在代码中遗漏了一些东西,但添加 voip 是可行的。再次感谢。【参考方案2】:根据苹果论坛的讨论,这就是答案
“在 iOS 10 中,您应该使用 PushKit 来处理传入 VoIP 呼叫的推送通知。因此,当您针对 iOS 10 SDK 构建应用程序时,您需要转移到 PushKit(可以一直支持到 iOS 8,但一旦您迁移到 iOS 10,我们的建议是将您的最低部署目标更新到 iOS 9)。"
答案原文链接:https://forums.developer.apple.com/thread/50106
【讨论】:
【参考方案3】:我尝试了这些设置,我只需启用 VOIP 作为后台模式。
打开 Info.plist 作为源并添加确保它包含以下内容:
<key>UIBackgroundModes</key>
<array>
<string>voip</string>
</array>
我还需要像这样启用推送通知:
【讨论】:
【参考方案4】:这可能是 Beta 版中的一个错误,因为没有官方公告或文章或任何关于从 XCode 9 兑换 VOIP 后台模式的内容。
或者一旦你实现了Callkit,VOIP后台模式就会自动考虑。
我建议等待 XCode 9 正式版。
更新答案
对于 XCode 9 和 iOS 11,Callkit 是 VOIP 实施的强制要求。集成 Callkit 后,后台模式 (VOIP) 将自动激活。
尝试从 WhatsApp 拨打电话,该通话记录也将在本地电话应用程序中提供。
更新答案 -> 您可以手动添加背景模式支持
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
<string>voip</string>
<string>fetch</string>
<string>remote-notification</string>
</array>
【讨论】:
您有任何支持链接吗? @hasya 不,我在拿到官方 XCode 9 和 iOS 11 后才明白这一点。以上是关于Xcode 9 中缺少 Voip(IP 语音)的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 9.2 中缺少标头搜索路径、库路径和链接路径部分
Xcode 9.4.1 上传 App Store 时缺少 App Store 图标