# Apple Push Notification Service (APNs) Integration

{% hint style="danger" %}
iOS push messages via FCM are not supported.

Please integrate APNs to use iOS push messages.
{% endhint %}

## Apple Push Notification Service (APNs)

Apple Push Notification Service is the official iOS push channel provided by Apple. It enables you to deliver reliable and fast push notification services to iOS apps.

***

An APNs Key is required for push notifications. If you already have a Key, proceed to **Configure iOS Push in the Hackle Dashboard**.

{% stepper %}
{% step %}
**Navigate to Apple Developer Account**

Navigate to [Account](https://developer.apple.com/account) on Apple Developer.

After navigating, click \*\*`Keys`\*\* under `Certificates, IDs & Profiles`.

![](/files/jrPfmn6gbVABwbJiKnld)
{% endstep %}

{% step %}
**Generate a Key**

Click the `+` button next to Keys to navigate to the key creation screen.

![](/files/Fagwqz0Vuk8UbZ2LLMaw)

On the key creation screen, set the `Key Name` and **check APNs to enable** it. Then click the `Configure` button on the right.

![](/files/zhtpKV29NCupc8JbBAca)

**Key Configure**

APNs keys have `Sandbox` and `Production` environments.

| Environment | Description    | Build Environment                                   |
| ----------- | -------------- | --------------------------------------------------- |
| Sandbox     | For testing    | Direct execution in Xcode, development provisioning |
| Production  | For production | TestFlight, Ad Hoc, App Store distribution          |

Selecting `Sandbox & Production` allows you to use the same key across all environments.

After selecting, click `Save`.

![](/files/ig15QKWDqD3AvLEqUu2R)

**Key Download**

Click `Continue` on the screen that returns. Then click `Register` on the next screen.

![](/files/NEBVvYhV8bOjTuHoqdpF)

The Key has now been created. Click `Download` at the top to download the key.

Note the Key ID as well, since it will also be needed.

{% hint style="danger" %}
The Key cannot be downloaded again, so keep it in a secure location.

The Key ID can be verified again on the Keys screen.
{% endhint %}

![](/files/20naEzIVSqsN6wbjneOo)
{% endstep %}

{% step %}
**Configure iOS Push in the Hackle Dashboard**

Navigate to `Workspace Settings > CRM Integration` in the Hackle Dashboard.

You need to register an APNs Key separately for each Production and Development environment below. Click the Integrate button.

{% hint style="warning" %}
Register the **Production** APNs Key for the Production Environment and the **Sandbox** APNs Key for the Development Environment.

For a Production & Sandbox Key, you can use the same key to integrate each environment.
{% endhint %}

![](/files/RQqJqM1STlkPJXoC9aXt)

Fill in all fields in the popup that appears and click the Save button.

* The APNs key file created earlier
* The APNs Key ID created earlier
* The app's Bundle ID
* The account's Team ID

If the Key is registered successfully, the integration complete indicator will appear as shown below.

![](/files/Tx2bYDZi7eyrCyVCMfI2)
{% endstep %}
{% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hackle.io/en/external-link/crm-channels/apple-push-notification-service-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
