iOS APNS Development [sandbox] vs Production

If you want to post your app to the app store you will need to use a Production Provisioning Profile, therefore all notifications sent with APNS Developer Certificate will not arrive to your app signed with a Production Provisioning Profile.

Why not use only a production APNS certificate? Well you can do this but...

  • In order to test you will need to build your app with a Production Ad Hoc Provisioning Profile, this is a lot of extra work at compiling
  • Using a production cert in development, and therefore using an ad-hoc build, you cannot run with the debugger. Makes troubleshooting very painful.
  • Test notifications makes everything goes to production so you have to be extra careful

dminones' answer is very accurate. I want to point out that you can now use production cert in development. The difference is that you will send to 'gateway.sandbox.push.apple.com' for development and 'gateway.push.apple.com' for production. I think the reason for separating sandbox and production is to avoid sending test push notifications to real users. Imagine you do blast notifications, all of your users will have the notification.