iPhone app rejected for “transferring excessive volumes of data”

前端 未结 6 1539
长发绾君心
长发绾君心 2020-12-03 15:43

Our lovely app that downloads mp3s from our server into a local file on the phone then plays from that file was rejected for using too much bandwidth.

I understand t

相关标签:
6条回答
  • 2020-12-03 16:13

    YOu could not download the mp3 unless you are on wireless, and inform them of that. If you the mp3 are too important, then just tell them it only works on wireless, or include a few mp3 on the device. But 30min of mp3 is ridiculous, that is about what, 30meg.... think about it, 30 meg is just too much.

    0 讨论(0)
  • 2020-12-03 16:16

    On a more serious note, what is it trying to do? There are many markets for iPhone outside of the US which don't have good download rates for phones, nor are the download cap sizes good, so having an app do lots of downloading isn't a good thing.

    Could you possibly drop the data rate on your mp3 or some such? Make it optional to do the downloading with a warning that it will use your download?

    0 讨论(0)
  • 2020-12-03 16:24

    I have talked with Apple Developer support, and just FYI. You are only allowed to stream 1 MB per minute over the Cellular network. Support suggest that you test your app in the following way:

    "The basic measurement methodology is to turn off all background updating (particularly Mail's automatic mail downloads and Calendar updates), reset the transfer statistics in "Settings:General:Usage:", and then launch your application. Let it run for a fixed amount of time (five minutes is reasonable), and then exit your application. Once you've finished the test, the numbers listed under "Cellular Network Data" in "Settings:General:Usage:" are what you should focus on reducing.

    Using what I just described, I'd suggest 4.8 MB every 5 minutes as the guideline you use to ensure your application stays within our bandwidth requirements."

    Hope that helps at least a little.

    0 讨论(0)
  • 2020-12-03 16:29

    Iphone app store acceptance flowchart

    0 讨论(0)
  • 2020-12-03 16:35

    I would suggest throttling the bandwidth on the network/http request when connected to cellular, and having no throttle on wifi.

    A combo of using Reachability to detect the network status, and implementing your http request using CFNetwork with a sleep until the next second whenever you have already downloaded as much as allowed per second should get you there.

    You should check out this project, either to use, or just to see an example of how to code this well:

    http://allseeing-i.com/ASIHTTPRequest

    The ASIHTTPRequest class implements this, using either the old or 2.0 version of Reachability, and also provides a class level throttle, so even if you have multiple concurrent downloads and uploads, so long as all of them go through ASIHTTPRequest, they will be properly taken together and throttled properly.

    A bit more on how to use this here: http://allseeing-i.com/ASIHTTPRequest/How-to-use#bandwidth_throttling

    Lots of good stuff in this (and no, I am not the author of any of it).

    0 讨论(0)
  • 2020-12-03 16:39

    Have you considered HTTP Live Streaming? It's built into OS 3.0.

    Basically, you split your media into small (say, 10 second) snippets and put it on a standard web-server. Then you create little text 'meta-descriptor' files in EXTM3U format that point out where the bits are. The interesting thing is that you can create multiple versions of each snippet at different bit-rates. So if your bandwidth is good, the iPhone player dynamically chooses the higher bit-rates but when it's low it automatically switches to the lower bit-rate version of the snippet. It does this on-the-fly to adapt to changing conditions.

    So if you split your MP3 into multiple 10-second bits at say, 3 different bit-rates then when the user is connected through WiFi they get the high-quality stuff but if they're on 3G or EDGE they get progressively lower-quality (and smaller sized) content.

    If this violates your downloadable media concept, then perhaps you can use the same trick and keep multiple size files for each connection type. Then if you're on WiFi (or get a fast turnaround on a heartbeat ping to the server) download the big file vs. medium or small size ones.

    Here's a decent step-by-step on segmenting content. They focus on video but it should work with audio content as well.

    0 讨论(0)
提交回复
热议问题