The Push Notifications category allows you to integrate push notifications in your app with Amazon Pinpoint targeting, campaign, and journey management support. You can segment your users, trigger push notifications to your app, and record metrics in Pinpoint when users receive or open notifications. Amazon Pinpoint helps you to create messaging campaigns and journeys targeted to specific user segments or demographics and collect interaction metrics with push notifications.
PrerequisitesAn application with Amplify libraries integrated and a minimum target of any of the following:
For a full example, please follow the project setup walkthrough.
visionOS support is currently in preview and can be used by using the latest Amplify Release. As new Xcode and visionOS versions are released, the support will be updated with any necessary fixes on a best effort basis.
Push Notifications are delivered via the Apple Push Notification service (APNs). In order to use APNs, you need to setup credentials (keys or certificates) and export your credentials to a p12 file. See Setting up push notification services for more information.
Testing with APNs on the iOS simulator requires an Apple Silicon Mac running macOS 13+, Xcode 14+, and iOS simulator 16+. If your development environment does not meet all these requirements, then you must run on a real device to get an APNs token.
Set EntitlementsUsing Amazon Pinpoint with APNs requires the following capabilities
To add these capabilities:
Xcode can be a little finicky with this step. If the Capabilities dialog is empty, try switching to a different tab and then switching back to Signing and Capabilities
Select Change All when prompted.
Under Background Modes, select Remote Notifications
Xcode can be a little finicky with this step. If the Capabilities dialog is empty, try switching to a different tab and then switching back to Signing and Capabilities
APNs requires an application delegate to handle push notifications functionality via delegate methods. If your app does not already have an application delegate, you will need to create one:
NSObject
and implements the UIApplicationDelegate
(iOS/tvOS), WKApplicationDelegate
(watchOS), or NSApplicationDelegate
(macOS) protocol.To use Push Notifications with Amplify, you have the option to either have the Amplify CLI setup resources for you, or you can use an existing Amazon Pinpoint resource in your AWS account.
Prerequisite: Install and configure the Amplify CLI
Push Notifications requires version 12.12.3+ of the Amplify CLI. You can check your current version with amplify -version
and upgrade to the latest version with amplify upgrade
.
To start provisioning push notification resources in the backend, go to your project directory and execute the command:
Choose APNS when promoted:
? Choose the push notification channel to enable.
⯠APNS |  Apple Push Notifications
FCM | » Firebase Push Notifications
Follow the setup prompts:
Authorizing the app for analytics events is crucial for unauthenticated users, particularly if you intend to configure Amplify or send push notifications to your users before their authentication. If authorization is declined, please keep in mind that updating the Cognito user pool would become necessary, and any subsequent updates could potentially result in the deletion of the current user data.
? Provide your pinpoint resource name: ⺠[pinpoint_resource_name]
? Apps need authorization to send analytics events. Do you want to allow guests
and unauthenticated users to send analytics events? (we recommend you allow this
when getting started) (Y/n)
Choose Certificate when promoted:
? Choose authentication method used for APNs
The CLI will prompt for your p12 certificate path, enter a path relative to the location where you ran the command.
Note: If you receive this error:
ð Command failed: openssl pkcs12 -in [path_to_your_cert].p12 -out [output_path].pem -nodes -passin pass:
Error outputting keys and certificates
Please try using LibreSSL 3.3.6 instead of OpenSSL. See issue #12969
Upon completion, amplifyconfiguration.json
will be updated to reference the newly provisioned backend push notifications resources. Note that this file should already be generated for you by the Amplify CLI as a part of your project if you followed the project setup walkthrough.
Amplify reads configuration information at runtime from a file called amplifyconfiguration.json
. If you used the Amplify CLI to create backend resources, this file was created for you. If it does not already exist, create the file and add it to your Xcode project.
Existing Amazon Pinpoint resources can be used with the Amplify Libraries by referencing your Application ID and Region in your amplifyconfiguration.json
file.
us-east-1
)To install Amplify Libraries in your application, open your project in Xcode and select File > Add Packages....
Enter the Amplify Library for Swift GitHub repo URL (https://github.com/aws-amplify/amplify-swift
) into the search bar and click Add Package.
Note: Up to Next Major Version should be selected from the Dependency Rule dropdown.
To initialize the Amplify Push Notifications, you will use the Amplify.addPlugin()
method to add the AWSPinpointPushNotificationsPlugin and then call Amplify.configure()
to finish configuring Amplify.
Open the main file of the application - AppDelegate.swift
or <YOUR_APP_NAME>App.swift
depending on the app's life cycle - and add the following import statements at the top of the file:
In the same file, create a function to configure Amplify:
Now call the configureAmplify()
function in the starting point of your application.
Upon building and running this application you should see the following in your console window:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4