What is "Keys" in Certificates, Identifiers & Profiles section of Apple Dev center - ios

Today I noticed a new section named "Keys." I don't know which services uses this? Anybody have any idea? Or I'm the beta user to see this?

I noticed it also quite recently and used it right away for push notification configuration of a 3rd party service. In my case I created a key and then added it to the Visual Studio Mobile Center push notification configuration site along with the BundleID and the TeamID.
Additional to this you still have to configure Push Notification on your App Identifier in the corresponding section.
It looks like the keys here are a new and more convenient way for passing push authentication info like the PEM files before.
But can't actually find and official docs on this topic by Apple :( by now.

Found this info https://developer.clevertap.com/docs/how-to-create-an-ios-apns-auth-key
If you’d like to send push notifications to your iOS users, you will
need to upload either an APNs Push Certificate, or an APNs Auth Key.
We recommend that you create and upload an APNs Auth Key for the
following reasons:
No need to re-generate the push certificate every year One auth key
can be used for all your apps – this avoids the complication of
maintaining different certificates When sending push notifications
using an APNs Auth Key, we require the following information about
your app:
Auth Key file Team ID Your app’s bundle ID
This sounds like a convenient way to send APN as no need to keep renew annually, but the 1 key is used for all your apps and the p8 file can only be downloaded once after generated. Not sure if the APN still work if I delete the key afterward.

Keys are used for a variety of Apple services. Here's a screenshot:

Related

Will revoking a current APNs key break a live app?

I have an app in the App Store that uses push notifications via Firebase Cloud Messaging. I created an APNs key for it at the time. I no longer have the key and was planning on releasing a new app. I tried to create a new key but the Devloper portal said I have reached the limit of keys for this service. If revoke the old key will it break the app I already have in the App Store? What's the best solution for this?
Your app will continue to function on the app store, however will be unable to receive push notifications until you replace the old key with the new key. Your APNS key is specific to your development team and not to the app itself. You won't need to update the existing app after switching the keys. The only info that APNS needs from the app is the bundle identifier.

iOS - What happens I lost my APNs Key file?

I just created the APNs Key file from Apple Developer website. It was saying "Don't lost this key". I already have a backup but what happens if I lost it?
It is also saying I just need one APNs Key for all apps.
Can I create more than one APNs Key or should I go with just one? If I lost this am I going to can't send notifications for just that app or none of my apps?
Thanks in advance.
You can have MULTIPLE .p8 files. The .p8 file is used to generate a JWT Token on the server side and that is used to send push notifications via HTTP2 to Apple's APNS server. Only problem is that if you lose it, you have to regenerate a new one on the server side. It doesn't affect existing apps at all because it's bound to the bundleId, applicationId, and developer account.
In other words, it's not a certificate that the app has to be re-signed with or anything.
Scenario to make it simpler:
I create an app called MyApp with BundleId: com.SO.myApp.
I create an APNS .p8 file with account RT8NCD.
On the server side, I use this .p8 file to send notifications to com.SO.myApp via HTTP2 and JWT Token generation.
I release the app to the AppStore.
I then LOST the .p8 file and can't send push to my app which is already on the store!
What do I do?
I go into the developer portal and re-create a NEW .p8 file with the same AppId and BundleId and same account.
Then on the server side I use this .p8 file to send push notifications to the devices registered in my database.
I do not need to release a new app or new version or anything.
So in other words, there's not really any consequences to losing it.. but it's not a good idea to get into the practice of losing keys, certificates, etc.. Seriously.
P.S. I cannot guarantee that this behaviour won't change in the future. It's Apple. Try not to lose things.
you can create one APN key per app (one for development one for production) but also you can recreate it, and all devices which was registered with all APN will be supported by new key

Can we host two APIs (APNs providers) on single machine who send notification to two different apps?

I am very new to iOS app development and APNs. I have developed two apps which are configured to receive push notification.
In my test environment, I am hosting two APIs apiAppX and apiAppY written using Javapns library on same machine. apiAppX and apiAppY generate push notifications(alerts) for appX and appY respectively. I am using different p12 file for different app.
The problem is, if I generate APNs certificate for appX first then it receives notification but appY doesnt. If I generate APNs certificate for appY first then it receives notification but appX doesnt.
I think this issue is being caused because I am hosting two providers on one machine. I came to conclusion after reading this documentation. Especially, after reading following paragraph:
Note that provider connection is valid for delivery to only one specific app, identified by the topic (bundle ID) specified in the certificate. APNs also maintains a certificate revocation list; if a provider’s certificate is on this list, APNs may revoke provider trust (that is, refuse the connection).
Am I right?
Thanks.

iOS push notification and certificate issues

I have a pretty basic push notification question I was hoping someone could quickly answer for me:
I am developing an application for another person and everything is completed except for push notification integration. The other person logged into his developer account, created an App ID (lets say com.company.myApp), configured it for push notification and created a development and production SSL Push certificate.
Up to this point, I have been using MY personal developer account, and my question is 2 fold:
1) If I create an App ID that matches the one my customer made (com.company.myApp) and test it in development, will the push notification trigger in my app? I am guessing not since I assume there must be some tie to the other persons account within these certificates.
2) In general, is it possible to develop an application with a developer license A, and have it submit to iTunes Connect belonging to the owner of license B?
In essence, I am trying to figure out if I need to obtain this other persons developer license certificates in order to fully create an app for them or if I can develop on my certificates and simply log into their iTunes Connect and upload the app even though the app was code signed by my certificate. Developing applications for other people is a new realm for me and so how all these licenses/certificates come into effect is a tad confusing.
I hope this scenario makes sense, if not I can try to further clarify.
There are 2 types of certificates:
Developer:
You can you use it to 2 everything you mentioned in 1)
and 2) as long as you add it to your key chain.
Distribution:
When submitting the app this is the certificate you
need to have in order to upload
your basic push notification solution is
1.your .cer certification use another app .cer certification ....thats why your certification dont match enter link description here

Service Web with APNS serving two apps = two certificates?

I'm developing a iOS app. This app has two targets (free version and premium version). Then I want to send push notifications throw my Service Web.
So, Do I need two certificates? Because my app (free or premium) uses the same Web Service and the same database. And when I want to send a push notification, now do I have to store and look if it's one version or another?
Can I use one certificate? Can I merge two certificates in one?
Thanks.
You can't use one certificate, since each certificate it tied to an App ID, and the App ID is different for each App (it contains the bundle ID of the App which is unique for each App).
You must use two certificates, which means your server will have to know which Device Token belongs to which App, and use the appropriate certificate. Perhaps, when you send the device token from your app to your server, you should send some additional info that indicates which App sent the token).

Resources