我已经完成了一个XMPP聊天应用程序,其中我使用Voip服务获取Voip密钥,以便在我处于后台时收到聊天消息。功能都运行良好,但应用商店拒绝应用程序,响应如下:
2.16:多任务应用程序只能将后台服务用于其预期目的:VoIP,音频播放,位置,任务完成,本地通知等。
2.16 我们发现您的应用使用后台模式,但不包含要求该模式持续运行的功能。此行为不符合App Store审核指南。
我们注意到您的应用宣布在Info.plist中的UIBackgroundModes键中声明支持VoIP,但不提供任何IP语音服务。
我们认识到VoIP可以提供许多应用功能想要使用的“保持活跃”功能。然而,以这种方式使用VoIP并不是VoIP的预期目的,如iOS应用程序编程指南所示,它是:“互联网协议语音(VoIP)应用程序允许用户使用Internet连接拨打电话而不是设备的蜂窝服务。“
添加VoIP功能或从UIBackgroundModes键中删除“VoIP”设置是适当的。对于离散的代码级问题,您可以咨询Apple Developer Technical Support。当DTS工程师跟进您时,请准备好提供:
- 拒绝问题的完整详情
- 截图
- 重现问题的步骤
- 符号化崩溃日志 - 如果您的问题导致崩溃日志
如果您在复制报告的问题时遇到困难,请尝试按照https://developer.apple.com/library/ios/qa/qa1764/ TechnicalQ& A QA1764:如何重现仅App App或用户看到的崩溃或错误中所述测试工作流程。
我需要某人的强烈回答,这样我才能使功能正常运行并获得App Store批准。
我认为在iOS 7发布后发生了拒绝。我需要一些在iOS 7发布后上传了XMPP聊天应用的人的帮助
答案 0 :(得分:4)
您无法添加voip
标记并获得Appstore批准,您需要实施VOIP功能,否则您将被拒绝。 Appstore中的大多数XMPP应用程序无法在后台运行,但其中一些应用程序在Jingle上实现VOIP并获得voip
标志的批准。
另一方面,如果您的应用程序粘贴到您的XMPP服务器,您可以修改服务器行为 - 即使他断开连接,保持用户会话在线,管理收到的消息并通过Apple推送通知通知用户。然后用户启动应用程序,恢复上一个会话并获取所有存储的消息这种行为尚未标准化,但有一些work-in-progress specification。
答案 1 :(得分:0)
您不能在您的应用中使用VoIP,因为它提供了一些很酷的背景功能。在应用程序被终止时,您可以接收消息的唯一方法是通过APNS推送通知,这些通知需要在服务器上进行相应配置,并在应用程序再次启动后重新创建连接。当应用程序在后台时,您可以显示本地通知,但是当与XMPP服务器的连接处于脱机状态时,您必须发送推送通知。
虽然,这里的挑战是在发送推送通知时获取邮件的送达回执。如果你正在处理送货收据,这将是一个挑战。