XMPP chat app got rejected for using VoIP service

2019-02-07 11:03发布

问题:

I Have done a XMPP chat app in which I am using Voip service for getting the Voip key in order to recieve the chat message when I am in background. The functionality all worked fine but the app store is rejecting the app with a response as given below:

2.16: Multitasking apps may only use background services for their intended purposes: VoIP, audio playback, location, task completion, local notifications, etc.

2.16 We found that your app uses a background mode but does not include functionality that requires that mode to run persistently. This behavior is not in compliance with the App Store Review Guidelines.

We noticed your app declares support for VoIP in the UIBackgroundModes key in your Info.plist but does not provide any Voice over IP services.

We recognize that VoIP can provide "keep alive" functionality that many app features would like to use. However, using VoIP in this manner is not the intended purpose of VoIP, which, as indicated in the iOS Application Programming Guide, is that: "A Voice over Internet Protocol (VoIP) application allows the user to make phone calls using an Internet connection instead of the device's cellular service."

It would be appropriate to add VoIP features or remove the "VoIP" setting from the UIBackgroundModes key.For discrete code-level questions, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:

  • complete details of your rejection issue(s)
  • screenshots
  • steps to reproduce the issue(s)
  • symbolicated crash logs - if your issue results in a crash log

If you have difficulty reproducing a reported issue, please try testing the workflow as described in https://developer.apple.com/library/ios/qa/qa1764/TechnicalQ&A QA1764: How to reproduce a crash or bug that only App Review or users are seeing.

I need a strong answer from someone so that I can get the functionality to work fine and also be approved for the App Store.

I think the rejection is happening after the release of iOS 7. I need some assistance from someone who has uploaded a XMPP chat app after the release of iOS 7

回答1:

You can't just add voip flag and get approved by Appstore, you need to implement VOIP functionality or you will be rejected. Most XMPP applications in Appstore does not work in background, but some of them implements VOIP over Jingle and get approved with voip flag.

On the other hand, if your application stick to your XMPP server, you can modify server behaviour - stay user session online even if he disconnected, manage received messages and notify user about it via Apple Push Notifications. Then user launch app, resume previous session and get all stored messages. This behaviour not yet standartized, but there is some work-in-progress specification.



回答2:

You cannot use VoIP with having implemented VoIP in your app just because it provides some cool background functionalities. The only way you can receive messages when the app is killed is through APNS push notifications that needs to be configured on the server accordingly and recreate the connection once the app is launched again. You can show local notifications when the app is in the background, but when connection with the XMPP server is offline, you must send a push notification.

Although, the challenge here is getting delivery receipts for messages when push notifications are sent. That, if you're handling delivery receipts, it will be a challenge.