
## Set Synerise delegate
---
This method sets an object for Synerise delegate methods.
**Declared In:**  
Headers/SNRSynerise.h
  
**Related To:**  
[SyneriseDelegate](/developers/mobile-sdk/listeners-and-delegates/ios-delegates#synerise-delegate)  
  
**Class:**  
Synerise
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1078">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1078-0" data-tab-group="tabgrp-1078" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1078-1" data-tab-group="tabgrp-1078">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1078-0" data-tab-group="tabgrp-1078" data-tab-active="true">

```Swift
static func setDelegate(_ delegate: SyneriseDelegate)
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1078-1" data-tab-group="tabgrp-1078">

```Objective-C
+ (void)setDelegate:(SNRSyneriseDelegate *)delegate
```

</div>
</div>

  
**Discussion:**  
Learn more about the methods and the purpose of this listener [here](/developers/mobile-sdk/listeners-and-delegates/ios-delegates#synerise-delegate).

## Initialization
---
This method initializes Synerise.
  

<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

This method must be called before any other Synerise SDK method and only once during the application's lifecycle.

</div></div></div>

**Declared In:**  
Headers/SNRSynerise.h
  
**Class:**  
[Synerise](/developers/mobile-sdk/class-reference/ios/modules#synerise)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1079">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1079-0" data-tab-group="tabgrp-1079" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1079-1" data-tab-group="tabgrp-1079">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1079-0" data-tab-group="tabgrp-1079" data-tab-active="true">

```Swift
static func initialize(apiKey: String) -> Void
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1079-1" data-tab-group="tabgrp-1079">

```Objective-C
+ (void)initializeWithApiKey:(NSString *)apiKey
```

</div>
</div>

  

<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Before version 5.0.0, this method was called `Synerise.initialize(clientApiKey:)`.

</div></div></div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **apiKey** | String | yes | - | Synerise Profile (formerly Client) API Key |
  
**Return Value:**  
No value is returned.

**Example:**

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1080">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1080-0" data-tab-group="tabgrp-1080" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1080-1" data-tab-group="tabgrp-1080">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1080-0" data-tab-group="tabgrp-1080" data-tab-active="true">

```Swift
let apiKey = "YOUR_PROFILE_API_KEY"
Synerise.initialize(apiKey: apiKey)
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1080-1" data-tab-group="tabgrp-1080">

```Objective-C
static NSString *apiKey = @"YOUR_PROFILE_API_KEY";
[SNRSynerise initializeWithApiKey:apiKey];
```

</div>
</div>


## Initialize with custom environment
---
This method initializes Synerise SDK with custom environment settings.  
  

<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

This method must be called before any other Synerise SDK method and only once during the application's lifecycle.

</div></div></div>

**Declared In:**  
Headers/SNRSynerise.h
  
**Class:**  
[Synerise](/developers/mobile-sdk/class-reference/ios/modules#synerise)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1081">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1081-0" data-tab-group="tabgrp-1081" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1081-1" data-tab-group="tabgrp-1081">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1081-0" data-tab-group="tabgrp-1081" data-tab-active="true">

```Swift
static func initialize(apiKey: String, baseUrl: String?) -> Void
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1081-1" data-tab-group="tabgrp-1081">

```Objective-C
+ (void)initializeWithApiKey:(NSString *)apiKey andBaseUrl:(nullable NSString *)baseUrl
```

</div>
</div>

  

<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Before version 5.0.0, this method was called `Synerise.initialize(clientApiKey:baseUrl:)`.

</div></div></div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **apiKey** | String | yes | - | Synerise Profile (formerly Client) API Key |
| **baseUrl** | String | no | - | Synerise API custom environment base URL |
  
You can use one of the constants:

<div class="content-tabs" data-tab-group="tabgrp-1091">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1091-0" data-tab-group="tabgrp-1091" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1091-1" data-tab-group="tabgrp-1091">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1091-0" data-tab-group="tabgrp-1091" data-tab-active="true">

**SyneriseApiUrls.SYNERISE_AZ_API_URL** -  `https://api.snrapi.com`  
**SyneriseApiUrls.SYNERISE_AZU_API_URL** - `https://api.azu.snrapi.com`  
**SyneriseApiUrls.SYNERISE_GEB_API_URL** - `https://api.geb.snrapi.com`

</div>

<div class="tab-panel" data-tab-id="tabgrp-1091-1" data-tab-group="tabgrp-1091">

**SNR_SYNERISE_AZ_API_URL** - `https://api.snrapi.com`  
**SNR_SYNERISE_AZU_API_URL** - `https://api.azu.snrapi.com`  
**SNR_SYNERISE_GEB_API_URL** - `https://api.geb.snrapi.com`

</div>
</div>


**Return Value:**  
No value is returned.
  
**Example:**

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1082">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1082-0" data-tab-group="tabgrp-1082" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1082-1" data-tab-group="tabgrp-1082">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1082-0" data-tab-group="tabgrp-1082" data-tab-active="true">

```Swift
let apiKey = "YOUR_PROFILE_API_KEY"
let apiBaseUrl = "YOUR_API_BASE_URL"
Synerise.initialize(apiKey: apiKey, baseUrl: apiBaseUrl)
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1082-1" data-tab-group="tabgrp-1082">

```Objective-C
static NSString *apiKey = @"YOUR_PROFILE_API_KEY";
static NSString *apiBaseUrl = @"YOUR_API_BASE_URL";
[SNRSynerise initializeWithApiKey:apiKey andBaseUrl:apiBaseUrl];
```

</div>
</div>


## Change Profile API Key dynamically
---
This method changes a Profile (formerly Client) API key dynamically.
**Declared In:**  
Headers/SNRSynerise.h
  
**Class:**  
[Synerise](/developers/mobile-sdk/class-reference/ios/modules#synerise)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1083">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1083-0" data-tab-group="tabgrp-1083" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1083-1" data-tab-group="tabgrp-1083">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1083-0" data-tab-group="tabgrp-1083" data-tab-active="true">

```Swift
static func changeApiKey(_ apiKey: String) -> Void
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1083-1" data-tab-group="tabgrp-1083">

```Objective-C
+ (void)changeApiKey:(nonnull NSString *)apiKey
```

</div>
</div>

  

<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Before version 5.0.0, this method was called `Synerise.changeClientApiKey(_ clientApiKey:)`.

</div></div></div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **apiKey** | String | yes | - | Synerise Profile API Key (formerly Client API key) |
  
**Return Value:**  
No value is returned.

## Change Profile API Key dynamically with config
---
This method changes a Profile (formerly Client) API key dynamically, with additional parameters. It can include a salt for [Simple Profile Authentication](/developers/mobile-sdk/user-identification-and-authorization/simple-authentication) requests.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 4.19.0 | 5.20.0 | 0.23.0 | 1.3.0 |
**Declared In:**  
Headers/SNRSynerise.h
  
**Class:**  
[Synerise](/developers/mobile-sdk/class-reference/ios/modules#synerise)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1084">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1084-0" data-tab-group="tabgrp-1084" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1084-1" data-tab-group="tabgrp-1084">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1084-0" data-tab-group="tabgrp-1084" data-tab-active="true">

```Swift
static func changeApiKey(_ apiKey: String, config: InitializationConfig?) -> Void
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1084-1" data-tab-group="tabgrp-1084">

```Objective-C
+ (void)changeApiKey:(nonnull NSString *)apiKey config:(nullable SNRInitializationConfig *)config;
```

</div>
</div>

  

<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Before version 5.0.0, this method was called `Synerise.changeClientApiKey(_ clientApiKey:config:)`.

</div></div></div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **apiKey** | String | yes | - | Synerise Profile API Key (formerly Client API key) |
| **config** | [InitializationConfig](/developers/mobile-sdk/class-reference/ios/lifecycle#initializationconfig) | no | - | Object for additional initialization settings after the API key change |
  
**Return Value:**  
No value is returned.

## Set Request Validation Salt
---
This method sets the salt string for request validation.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 4.14.0 | 5.7.1 | 0.15.0 | 0.7.0 |
**Declared In:**  
Headers/SNRSynerise.h
  
**Class:**  
[Synerise](/developers/mobile-sdk/class-reference/ios/modules#synerise)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1085">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1085-0" data-tab-group="tabgrp-1085" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1085-1" data-tab-group="tabgrp-1085">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1085-0" data-tab-group="tabgrp-1085" data-tab-active="true">

```Swift
static func setRequestValidationSalt(_: String?) -> Void
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1085-1" data-tab-group="tabgrp-1085">

```Objective-C
+ (void)setRequestValidationSalt:(nullable NSString *)string
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **salt** | String | no | - | Synerise Profile salt string for request validation |
  
**Return Value:**  
No value is returned.

## Set up host application type
---
This method sets the Synerise SDK host application type.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 3.6.1 | 3.6.22 | - | - |
**Declared In:**  
Headers/SNRSynerise.h
  
**Class:**  
[Synerise](/developers/mobile-sdk/class-reference/ios/modules#synerise)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1086">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1086-0" data-tab-group="tabgrp-1086" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1086-1" data-tab-group="tabgrp-1086">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1086-0" data-tab-group="tabgrp-1086" data-tab-active="true">

```Swift
static func setHostApplicationType(_ type: HostApplicationType) -> Void
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1086-1" data-tab-group="tabgrp-1086">

```Objective-C
+ (void)setHostApplicationType:(SNRHostApplicationType)type
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **type** | [HostApplicationType](/developers/mobile-sdk/class-reference/ios/miscellaneous#hostapplicationtype) | yes | - | Specifies the type of host application |
  
**Return Value:**  
No value is returned.

## Set host application SDK plugin version
---
This method sets the Synerise SDK plugin version.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 4.14.6 | 5.11.0 | - | - |
**Declared In:**  
Headers/SNRSynerise.h
  
**Class:**  
[Synerise](/developers/mobile-sdk/class-reference/ios/modules#synerise)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1087">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1087-0" data-tab-group="tabgrp-1087" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1087-1" data-tab-group="tabgrp-1087">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1087-0" data-tab-group="tabgrp-1087" data-tab-active="true">

```Swift
static func setHostApplicationSDKPluginVersion(_ version: String) -> Void
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1087-1" data-tab-group="tabgrp-1087">

```Objective-C
+ (void)setHostApplicationSDKPluginVersion:(NSString *)version
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **version** | String | yes | - | Specifies the version of the Synerise SDK plugin in the host application |
  
**Return Value:**  
No value is returned.

## Enable Debug Mode
---
This method enables or disables console logs from Synerise SDK.  
  

<div class="admonition admonition-warning"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" /></svg></div><div class="admonition-body"><div class="admonition-content">

It is not recommended to use debug mode in the release version of your application.

</div></div></div>

**Declared In:**  
Headers/SNRSynerise.h
  
**Class:**  
[Synerise](/developers/mobile-sdk/class-reference/ios/modules#synerise)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1088">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1088-0" data-tab-group="tabgrp-1088" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1088-1" data-tab-group="tabgrp-1088">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1088-0" data-tab-group="tabgrp-1088" data-tab-active="true">

```Swift
static func setDebugModeEnabled(_: Bool) -> Void
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1088-1" data-tab-group="tabgrp-1088">

```Objective-C
+ (void)setDebugModeEnabled:(BOOL)enabled;
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **enabled** | Bool | yes | - | Enables or disables console logs |
  
**Return Value:**  
No value is returned.

## Enable Crash Handling
---
This method enables or disables crash handling by Synerise SDK.
  

<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

If set to true, Synerise SDK will send the `client.applicationCrashed` event with information about crash.

</div></div></div>

**Declared In:**  
Headers/SNRSynerise.h
  
**Class:**  
[Synerise](/developers/mobile-sdk/class-reference/ios/modules#synerise)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1089">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1089-0" data-tab-group="tabgrp-1089" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1089-1" data-tab-group="tabgrp-1089">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1089-0" data-tab-group="tabgrp-1089" data-tab-active="true">

```Swift
static func setCrashHandlingEnabled(_: Bool) -> Void
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1089-1" data-tab-group="tabgrp-1089">

```Objective-C
+ (void)setCrashHandlingEnabled:(BOOL)enabled
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **enabled** | Bool | yes | - | Enables or disables crash handling |
  
**Return Value:**  
No value is returned.

## Set Background Task identifiers
---
This method sets identifiers for Background Tasks processing.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 4.23.0 | - | - | - |


<div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Do not use those identifiers for other Background Tasks in your app.

</div></div></div>

**Declared In:**  
Headers/SNRSynerise.h
  
**Class:**  
[Synerise](/developers/mobile-sdk/class-reference/ios/modules#synerise)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1090">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1090-0" data-tab-group="tabgrp-1090" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1090-1" data-tab-group="tabgrp-1090">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-1090-0" data-tab-group="tabgrp-1090" data-tab-active="true">

```Swift
static func setBackgroundTaskIdentifiers(_: [String]) -> Void
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-1090-1" data-tab-group="tabgrp-1090">

```Objective-C
+ (void)setBackgroundTaskIdentifiers:(NSArray<NSString *> *)identifiers
```

</div>
</div>



**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **identifiers** | [String] | yes | - | Identifiers for Background Tasks registered in the host appliaction. |
  
**Return Value:**  
No value is returned.