Is there documentation on what Apple will accept and not accept when submitting an app, or is it trial and error?
Apple can reject any application just because they don't like it. As so it's impossible to create such docummentation.
However, you can search some blogs where people describe their application approval process to give you some kind of heads up of what to expect.
From the keynote yesterday, the official criteria (according to Steve Jobs) is:
- The app works and does what the developer says it should
- The app does not use any private API's
- The app doesn't crash
Apart from this, they also have the ability to reject any application because they want to, as RaYell says.
Edit: After watching the keynote (I had only read the live blogs before), I got the impression that these three were the most important criteria, but that there were also others. bpapa makes good suggestions for the others.
There are a lot of blog posts about apps that were rejected (and some were taken back after a lot of public discussion) but it will probably help to read the docs they provide in the developer center:
here's one discussion about what is appropriate for single view apps:
- Use common sense. The app should work as advertised. The app store does have it's share of scams but it seems like sooner or later the developer gets in trouble.
- Don't use Private APIs.
- Read through all of the items at News and Announcements, which mentions things you shouldn't miss like Reachability.
- Read through the Human Interface Guidelines.
- Keep up with blogs and twitter to see what else has been rejected. Google stuff like "App Store Rejection of the week."
- Be wary of creating apps that duplicate iPhone functionality or have otherwise limited functionality.
- Don't toe the line of questionable content. If you are making a gory first person shooter with neo-nazis killing topless women, you might want to go back to the drawing board.
Our company Appiction has had apps rejected for a number of reasons ranging from they didn't like how we did our encryption to they felt an app was too buggy. I think you just have to employ a really strong QA process before you submit an app to make sure it's bug free, otherwise you waste time with Apple. And to @Lizzan , Steve's criteria was definitely a VERY high overview and we had a lot of prospective clients with selective hearing calling in saying "Steve said these were his only three criteria so I can put my porn app in now, right?" My other suggestion would be that if you're developing for a client, make sure they take into account that the app could be slowed down by Apple approval. If they have a hard launch date they need to understand this. We did a Youtube video for our app development company, Appiction, answering this question. You can watch it here: http://www.youtube.com/watch?v=b8HnwYfwhfg