> This page is for Applications Protection.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.humansecurity.com/llms.txt.

# Migrating SDK from v2 to v3

## Start the SDK

In version 2.x, the `start` function is called with five parameters: `application`, `appId`, `delegate`, `enableDoctorCheck` and `completion`.

In version 3.0, there are two `start` functions, both of them has only four parameters: `application`, `appId` (or `appIds`), `delegate` and `policy`. Those functions throw an error on failure. Also, this function should be called only once.

In version 3.0, the `setPolicy` function was removed. The policy can be set via the `PerimeterX/start(application:appId:delegate:policy:)` function.

## Other functions

In version 3.0, the signature of `canHandleResponse` function was changed. The `code` param was removed.

In version 3.0, the signature of `handleResponse` function was changed. The `code` param was removed.

In version 3.0, the signature of `setUserId` function was changed. However, the function receive the same parameters.

In version 3.0, the signature of `registerOutgoingUrlRequest` function was changed. However, the function receive the same parameters.

In version 3.0, the function `addInitializationFinishedCallback` was removed.

In version 3.0, `registerCallbackForRequestBlockedEvent`, `registerCallbackForChallengeSolvedEvent`, `registerCallbackForChallengeCancelledEvent` functions were removed.