Apple's app review process is one of the most important parts for a developer. All your work as an iPhone/iPad app dev is reviewed by Apple's testers and if your app satisfies their rules and guidelines, your app will be approved and be on the App Store soon.
There is no set time-limit for the app review/approval process. It depends on a lot of factors but mostly, it can take anywhere between 5 days and 4 weeks. Sometimes, if you don't activate the IAPs, your app might remain in pending for a long time till you fix it.
There's nothing technical you can do to get your app reviewed faster but if you follow these steps, you might avoid getting your app rejected and follow the reject-repeal cycle.
Here are five things you must absolutely make sure:
1). A “Complete” App: One of the first things to make sure is not to leave any open-ended feature in the app. Every thing should work as it is intended to. If you have a social share option but it doesn't work yet because you've not linked it correctly, your app will get rejected for this purpose alone.
2). Unique In Content and Approach: For every idea, there is an app out there. With over 700 million apps and counting, there's way more duplicate apps out in the App Store now than it was ever before. Naturally, if your app does almost the same thing as some other app in the store, your app has a higher chance of getting rejected. Even if you create something that's a little different, this will delay the process. Make sure what you create stands out. Totally.
3). Follows every little guideline to the T:Guidelines aren't rules. That's the first step in understanding the guidelines the way they're meant to be. A rule is a standard procedure you can't flout. A Guideline opens up for multiple interpretations. The key is to identify what Apple really means with a guideline. Understand and know all the guidelines that Apple has set for apps.
As much as possible, go through the guidelines regularly and often.
4). Simplify As Much As Possible: Apple loves simplicity so much so that they'll reject apps that appear to be complicated. If you can't simplify something because it is complex naturally, that's okay but if you have complicated a process unnecessarily, your app risks being rejected.
5). Test Excessively Before Sending it for Approval: I've included this as the last point but this is the most important point. Test your app thoroughly, excessively and do it like it's an obsession. Testing reveals a lot of stuff that goes wrong, that might be done other way and that's required/not-required. Also, rope in a few friends to test the app before you send it for review.
While you can't influence the time taken in an app review process, you can make sure there are things that cleared out fast. To summarize, keep things simple, be really unique, re-read the guidelines a lot of times and test, test, test. Keep testing till you know for sure that things are perfectly okay.
Similar lessons apply for app updates that you push. Incidentally, app updates take much shorter time than the first review process. Nevertheless, follow these principles to make sure nothing goes wrong.