# Release Checklist

{% stepper %}
{% step %}
**Ensure no ContextSDK errors are logged**

When running your app with ContextSDK installed on a real device, ensure that Xcode doesn't print out any ContextSDK related errors (search output for "ContextSDK")
{% endstep %}

{% step %}
**Verify background wake-up handling**

ContextPush wakes your app in the background using background processing and silent push notifications. Verify that your app properly handles background launches:

* Ensure `application(_:didFinishLaunchingWithOptions:)` doesn't present UI or perform foreground-only operations when called during background wake-ups
* Verify that foreground-specific logic (onboarding, promotional screens, analytics events) is properly gated using UIScene lifecycle methods (`sceneDidBecomeActive(_:)`), `UIApplication.didBecomeActiveNotification`, or application state checks
* Review your app's initialization code to confirm it handles both foreground and background launches appropriately

See the [Understanding Background Wake-Up Behavior](/context-push/integration.md#understanding-background-wake-up-behavior) section in the integration guide for implementation details.
{% endstep %}

{% step %}
**Ensure `Remote Notification` entitlement**

In your Xcode project, go to `Signing & Capabilities` and enable the `Remote Notification` capability in the `Background Modes` section.
{% endstep %}

{% step %}
**Verify Notification Service Extension**

ContextPush requires a [Notification Service Extension](/context-push/notification-service-extension.md) for accurate delivery tracking:

* Verify both main app and extension have the same App Group identifier in capabilities
* Confirm `ContextSDKExtension` pod/package is added to the extension target
* Test that `setupForExtension` returns `true` after launching main app
* **Important:** If you configured `appGroupIdentifier` in your main app but haven't set up the extension, there maybe duplicated deliveries
  {% endstep %}

{% step %}
**Monitor Context Dashboard**

Once your update goes live, head over to [dashboard.contextsdk.com](https://dashboard.contextsdk.com) to monitor your app's insights. Even though our technology is real-time, many of the graphs only really make sense once a certain amount of data has been collected.

The first graphs & insights will be shown, once your app update was released to the App Store, and enough users have updated to the new version.

We will also notify you via email, once the first insights are ready.
{% 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.contextsdk.com/context-push/release-checklist.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.
