An iOS Push Certificate is required for notification delivery to all iOS apps.
- An iOS mobile app. (This is not for websites / web push)
- A Paid Apple Developer Account with Admin Role.
- A OneSignal Account, if you do not already have one.
- A Mac computer with Xcode 11+
- Your Xcode project should have the Push Notification capability added. Otherwise your project may not be shown in the Apple Developer Center.
Previous Certificate Revokation
Previous p12 Push Certificates for this bundle id will be revoked and cannot be used once you generate a new certificate with this method.
Admin account required: Before you use the Automatic Provisioning tool, log into your Apple Developer account, go to the Membership section, and make sure your role for the team is Admin. If your role is not Admin, you will not be able to use this tool.
2.1 Open the Keychain Access app on your Mac OS X system. It may be located in Applications > Utilities > Keychain Access.
Select Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority...
Next, select the Save to disk option and enter your information in the required fields. This creates a certification request file that will be used later.
2.2 - Add OneSignal Identifier
Select your Identifier in your Apple Developer Account under Certificates, IDs & Profiles > Identifiers
Scroll down to the bottom and enable Push Notifications, but do not click Edit.
Next, go to Certificates and create a new certificate by clicking the blue + (plus) button.
Under Services, select Apple Push Notification service SSL (Sandbox & Production) and click Continue.
The certificate will be applicable to both Sandbox and Production environments, so you do not need a separate key for each one.
Choose an App ID from the App ID pop-up menu, and click Continue.
Click Choose File.., select the CertSigningRequest file you saved in the first step, click Open, and then click Continue.
Click Download to save the certificate to your computer.
.cer file you downloaded in the last step by double-clicking on it in Finder.
After a few seconds, the Keychain Access program should open. Select Login > My Certificates, then right-click on your key in the list and select Export.
Give the file a unique name using the
.p12 extension, and click Save. You will have an option to protect the file with a password. If you add a password, you need to enter this same password on OneSignal.
In the OneSignal dashboard, select your app from the All Apps page, then go to Settings. Under Native App Platforms, click Apple iOS.
.p12 file you exported (along with a password, if you added one) and click Save.
Note: If you used the OneSignal Provisionator tool to create a
.p12 file, a password was generated for you, and is located next to the Download button.
Required for Cordova/PhoneGap, GoNative and Xcode 8-10
In your Apple Developer Account, on the left to go to Profiles.
Next find any that are for your app and remove them if they do not have App Groups and Push Notifications in Enabled Capabilities:
Recreate the ones you need by pressing the "+" button
When recreating new ones make sure to enter a unique name in the "Profile Name:" field.
Example, if creating an Ad-Hoc Provisioning Profile to test push notifications with a Production Push Certificate .p12 file. Use the format
AppName_AdHoc so you know the app and type it is.
Re-sync your Developer Account in Xcode by going to Xcode > Preferences... then click on the "View Details..." button. Lastly, click the refresh button on the bottom left of the popup. See Apple's documentation for more detailed instructions.
Make sure you pick your new provisioning profile from Build Settings>Code Signing>Provisioning Profile in Xcode.
You now have a certificate to send push notifications from your iOS app. 🥳
Updated 3 months ago
Next, install the OneSignal SDK in your app. If you need help, we have a few SDK-specific guides:
|iOS SDK Setup|
|Unity SDK Setup|
|React Native SDK Setup|
|Cordova SDK Setup|
|Ionic SDK Setup|
|Flutter SDK Setup|