I've found this (non-exhaustive) list on an Italian magazine (Io Programmo)
The application doesn't have to:
- Crash
- Customize standard visual components so that their behaviour is not intuitive or semantically different from the default behaviour
- Use icons with a misleading meaning or use SDK icons in a misleading way
- Don't show alerts with, for example,
UIAlertView
for unexpected situation (i.e. broken internet connection when the app is running)
- Don't notify the user on missing or not accessible hardware components (for example the GPS)
- Use different icons on the AppStore and inside the application
- Support device rotations without re-organizing the layout
In few words, read carefully the Human Interface Guidelines provided with the XCode documentation