Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS APNS Development [sandbox] vs Production

Guys I'm having some trouble figuring out the key differences between the APNS (push notification) Developer (Sandbox) and Production modes. In particular I have the following questions:

1) Can I launch an app on the app-store with Push Notifications that is only registered for the APNS Developer Certificate? Or do I need to use to use APNS Production for apps I want to launch on the app store?

2) In general, what are the functional reasons other than "development on development APNS" and "production on production APNS" that would inform my decision. In particular why would I choose to implement an APNS Developer certificate for my app at all and why not just run everything on a Production push account?

Here's what Apple says on it's website but it doesn't get to the heart of my question:

Development: Use the development environment for initial development and testing of the provider app. It provides the same set of services as the production environment, although with a smaller number of server units. The development environment also acts as a virtual device, enabling simulated end-to-end testing. You access the development environment at gateway.sandbox.push.apple.com, outbound TCP port 2195.

Production: Use the production environment when building the production version of the provider app. Apps using the production environment must meet Apple’s reliability requirements.

like image 531
Eugene Avatar asked Feb 17 '15 04:02

Eugene


People also ask

How long does APNs certificate last?

APN certificate(s) downloaded from Apple only have one year validity from the date it was created.

What is APNs development iOS?

iOS development certificate is used for testing and deburing purpose. APNS certificate This is used for the push notification service. APNS communicate remote server to apple server for push notifications. Follow this answer to receive notifications.

Are APNs paid?

APNS is a free service.

What is development APNs certificate?

Apple Push Notification service (APNs) is a platform notification service that enables third-party application developers to send notification data to applications installed on Apple devices. iOS applications that use APNs need to have a certificate.

What is the difference between iOS and APNS certificate?

iOS development certificate is used for testing and deburing purpose. APNS certificate This is used for the push notification service. APNS communicate remote server to apple server for push notifications.

What is the difference between “Apple development iOS push services” and certificate?

Their is a big difference between “Apple Development iOS Push Services” and “Apple Production iOS Push Services” certificates . One is used for sandbox and the other is used for the production push server. Make sure you use the appropriate certificate for testing and production and do not confuse with those

Do I need a production provisioning profile to post my App?

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?

What is the difference between development push SSL and production push SSL?

When you use Development Push SSL certificate Apple's demo server will be used to send notifications. Whereas when you create the app file or .ipa file and install that on device you need to use production push SSL certificate. You can not mix and match these certificate.


Video Answer


2 Answers

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
like image 68
dminones Avatar answered Sep 20 '22 11:09

dminones


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.

like image 36
Terry Tan Avatar answered Sep 16 '22 11:09

Terry Tan