I've got one you can add: iPad applications don't have to support all four orientations. However, whichever orientation you do support (in our instance, portrait) you must support the top-up and bottom-up variations unless some special circumstance warrants only supporting one or the other. Just had a submission rejected earlier this week for this reason. FYI, here is the response we received from Apple:
10.1
We found that your app does not comply with the Apple iOS Human Interface Guidelines, as required by the App Store Review Guidelines.
Specifically, we noticed your app only supported the top-up variant of the portrait orientation, but not the bottom-up variant.
While supporting both variants of both orientations, each with unique launch images, provides the best user experience and is recommended, we understand there are certain applications that must run in the portrait orientation only. In this case, it would be appropriate to support both variants of that orientation in your application, e.g., Home button up and down.
Addressing this issue typically requires only a simple and straightforward code modification. However, if you require assistance, the Apple Developer Support Team is available to provide code-level assistance.
For more information, please review the Aim to Support All Orientations section of the iOS Human Interface Guidelines.
Is there not an easy way to just say "turn my app upside down when the user flips the device"? For most apps (i.e. ones that don't use the accelerometer, etc.) this should be trivial, and shouldn't require any real effort from the app developer.
Also, I agree with Apple that both orientations should be supported. Depending on how you're holding or docking the device, and where it's convenient for the headphone jack to protrude, it's quite conceivable for users to want to use both orientations.
Thanks for letting us know. I actually have an iPad app currently in the store (approved in October) that only supports top-up portrait. I guess it really depends how picky the reviewer wants to be. I will make sure I fix it before my next update.
At a recent Apple iOS Tech Talk the engineer giving the session mentioned that breaking the HIG wasn't expressly forbidden, but that you needed to "know the rules in order to break them". Break them, if it's better than sticking to them.
This isn't true. I've had two rejections for HIG violations - one was an unclear error message (authentication failure-style message when no network was available) and the other was orientation problems (one of the official iPad app templates at the time supported three orientations by default, which is against the rules).
Specifically, section 10.1 of the App Store review guidelines states:
> Apps must comply with all terms and conditions explained in the Apple iOS Human Interface Guidelines
It is very much the case that you can often get away with it (see for example all the apps with splash screens), but it is "expressly forbidden".
Here's one to add: if your app has a in-app purchase of more than $100, your app HAS to be rated 18+ because of a fear of teenagers can run up their parents' credit card bills.
It's somewhat unfair because 18+ means adult content, but an app might not contain adult content (as was the case with our client's self-help books/videos).
Does not "accidentally" contain such material, e.g. unrestricted web browsing, explicit lyrics, unfiltered collections of books.
Is that still true? That is, they will still reject a new e-book reader because it can read the Kama Sutra, and they would still reject an app that allowed the user to navigate to a porn site? I have the Wikipedia app installed, which I think would violate those terms.
Can someone elaborate on the no pricing information within the app point? If we have an in-app purchase, we can't tell people how much it costs? That sounds opposite to what I'd expect.
They specifically mean hard-coded references. For IAPs and the like, you should be querying the server for the localized price.
A good example is a "Share via Email" function that presents a pre-filled Email Composer with "Download this $1 app." This causes problems if you happen to change the price down the road (or if users are in a different economic zone).
I was curious about this too so had a search and found.
http://stackoverflow.com/questions/7109635/is-it-ok-to-show-...
If you use MKStoreKit to localize the pricing then its OK. Apple dont want developers hard coding pricing info or displaying the wrong currency to the user.
This is a fantastic list! Thank you for putting this together.
Question: can you elaborate on what this means exactly, and why it's necessary? "If you use encryption, you have registered with BIS and can provide documentation."
By "prompt" I assume they mean an actual modal popup, or something else that can't be ignored. Advertising seems ok, but forcing the user to make a choice is not.
Don't submit any sort of tethering app. Chances are it will be approved and removed within a couple of hours. Apple is 2 for 2 so far: Netshare and iTether.
Is this some kind of cat&mouse game from within Apple? Whoever is approving these apps must know what is going to happen. While it must be stressful for the app owner, as a spectator it's amusing (and granted, it's an issue I'm not affected by).
This one is interesting. If your app does something more than just tethering, it will likely be approved. Your app should change the data in some way for the receiving machine. Automotive telematics systems do this already, for example they use apps to stream music and map data to the head unit (pandora, gmaps) while basically reformatting the data for the head unit.
In other words, don't create a general tethering app, but a specific "service" for another device.
We got a reject from Apple for this very reason.
Don't have an example but the dimensions for the photos below - best advised to avoid using these proportions! Physical = 3.5" x 4.25" 0.25 inch white border at the top, .1875 inches on the sides and .875 at the bottom
I once had an app rejected as it was "not amusing" (it was a "Unicorn Chaser" app). I also have had apps rejected for putting "iPad" in the wrong section of the name. For example "X for iPad" is fine, but "iPad X" is not.
"The app has a reasonably sized market, i.e. is not a tiny niche or for a private audience" ...how do you distribute an app for a niche or private audience?
[+] [-] aculver|14 years ago|reply
10.1
We found that your app does not comply with the Apple iOS Human Interface Guidelines, as required by the App Store Review Guidelines.
Specifically, we noticed your app only supported the top-up variant of the portrait orientation, but not the bottom-up variant.
While supporting both variants of both orientations, each with unique launch images, provides the best user experience and is recommended, we understand there are certain applications that must run in the portrait orientation only. In this case, it would be appropriate to support both variants of that orientation in your application, e.g., Home button up and down.
Addressing this issue typically requires only a simple and straightforward code modification. However, if you require assistance, the Apple Developer Support Team is available to provide code-level assistance.
For more information, please review the Aim to Support All Orientations section of the iOS Human Interface Guidelines.
[+] [-] Ein2015|14 years ago|reply
(Just in case anybody wonders why they'd want both orientations...)
[+] [-] baddox|14 years ago|reply
Also, I agree with Apple that both orientations should be supported. Depending on how you're holding or docking the device, and where it's convenient for the headphone jack to protrude, it's quite conceivable for users to want to use both orientations.
[+] [-] TheFuture|14 years ago|reply
[+] [-] stefanbutlin|14 years ago|reply
[+] [-] sashthebash|14 years ago|reply
The best I found so far is the self-hosted QuincyKit (http://quincykit.net/) or if you don't want to fiddle with your own server, use HockeyApp (http://www.hockeyapp.net/).
[+] [-] psychotik|14 years ago|reply
[+] [-] coob|14 years ago|reply
At a recent Apple iOS Tech Talk the engineer giving the session mentioned that breaking the HIG wasn't expressly forbidden, but that you needed to "know the rules in order to break them". Break them, if it's better than sticking to them.
[+] [-] JimDabell|14 years ago|reply
Specifically, section 10.1 of the App Store review guidelines states:
> Apps must comply with all terms and conditions explained in the Apple iOS Human Interface Guidelines
It is very much the case that you can often get away with it (see for example all the apps with splash screens), but it is "expressly forbidden".
[+] [-] mirkules|14 years ago|reply
It's somewhat unfair because 18+ means adult content, but an app might not contain adult content (as was the case with our client's self-help books/videos).
[+] [-] dunham|14 years ago|reply
[+] [-] stefanbutlin|14 years ago|reply
[+] [-] scott_s|14 years ago|reply
Is that still true? That is, they will still reject a new e-book reader because it can read the Kama Sutra, and they would still reject an app that allowed the user to navigate to a porn site? I have the Wikipedia app installed, which I think would violate those terms.
[+] [-] xsmasher|14 years ago|reply
[+] [-] waterside81|14 years ago|reply
[+] [-] danielamitay|14 years ago|reply
A good example is a "Share via Email" function that presents a pre-filled Email Composer with "Download this $1 app." This causes problems if you happen to change the price down the road (or if users are in a different economic zone).
[+] [-] lukeinth|14 years ago|reply
[+] [-] stefanbutlin|14 years ago|reply
[+] [-] mirkules|14 years ago|reply
Question: can you elaborate on what this means exactly, and why it's necessary? "If you use encryption, you have registered with BIS and can provide documentation."
[+] [-] stefanbutlin|14 years ago|reply
[+] [-] uptown|14 years ago|reply
Is this true? I play a game that periodically shows an up-sell to the paid version as an alternative to the app's advertisements.
[+] [-] TillE|14 years ago|reply
[+] [-] unknown|14 years ago|reply
[deleted]
[+] [-] sanderson1|14 years ago|reply
Don't submit any sort of tethering app. Chances are it will be approved and removed within a couple of hours. Apple is 2 for 2 so far: Netshare and iTether.
[+] [-] marquis|14 years ago|reply
[+] [-] mirkules|14 years ago|reply
In other words, don't create a general tethering app, but a specific "service" for another device.
[+] [-] stefanbutlin|14 years ago|reply
[+] [-] aaronbrethorst|14 years ago|reply
[+] [-] p_monk|14 years ago|reply
[+] [-] stefanbutlin|14 years ago|reply
[+] [-] shaggyfrog|14 years ago|reply
[+] [-] stefanbutlin|14 years ago|reply
If you leak fast your app is unlikely to "not crash" and "remain responsive".
[+] [-] Aqua_Geek|14 years ago|reply
While this is wonderful to have on a checklist, let's be honest: the vast majority of apps fall short of this goal (and that's putting it nicely).
[+] [-] AznHisoka|14 years ago|reply
Can someone give me an example of a Polaroid border? Is it just a frame around an image?
[+] [-] karolist|14 years ago|reply
Google images keywords: polaroid frame, polaroid stack.
Sample: http://blog.simplyjean.com/wp-content/uploads/2007/11/polaro...
What's interesting that this wouldn't be allowed, I think there's many apps using this framing style in the app store already.
[+] [-] ChrisMoisan|14 years ago|reply
[+] [-] Aqua_Geek|14 years ago|reply
[+] [-] fsvehla|14 years ago|reply
[deleted]
[+] [-] jen_h|14 years ago|reply
[+] [-] stefanbutlin|14 years ago|reply
[+] [-] kayzee|14 years ago|reply
[+] [-] lloeki|14 years ago|reply
That one I see quite a lot. Example: Cut The Rope Holiday Gift (which is free) proposes me to get CTR Original and CTR Experiments on the last tab.
[+] [-] stefanbutlin|14 years ago|reply
[+] [-] _corbett|14 years ago|reply
[+] [-] pdenya|14 years ago|reply
[+] [-] MrScruff|14 years ago|reply
http://developer.apple.com/programs/ios/distribute.html
[+] [-] larrik|14 years ago|reply
If you are using Appirater or any other service that uses your app ID for something. Make real real sure you are using the right ID for your app.
Easy to mess up on new apps.