Links

Configuration API reference

clearUpdatedConfiguration

This API is only available in Android and iOS (AEP 3.x).
You can clear any programmatic updates made to the configuration via the clearUpdatedConfiguration API. This will clear programmatic updates to configuration made via the updateConfiguration(configMap)(Android)/ updateConfigurationWith(configDict:)(iOS) API. It will also clear any updates to the MobilePrivacyStatus(Android)/ PrivacyStatus(iOS) made via setPrivacyStatus(privacyStatus)(Android)/ setPrivacyStatus(_ status:)(iOS).
Here are some examples of scenarios:
  • configureWithAppId(appId)(Android)/configureWith(appId:)(iOS) -> updateConfiguration(configMap)(Android)/ updateConfigurationWith(configDict:)(iOS) -> clearUpdatedConfiguration(): In this example, you end up with the initial configuration set via configureWithAppId(appId)(Android)/ configureWith(appId:)(iOS)
  • configureWithFileInPath(filePath)(Android)/ configureWith(filePath:)(iOS) -> updateConfiguration(configMap)(Android)/ updateConfigurationWith(configDict)(iOS) -> clearUpdatedConfiguration(): In this example, you end up with the initial configuration set via configureWithFileInPath(filePath)(Android)/ configureWith(filePath:)(iOS)
  • configureWithFileInAssets(fileName)(Android) -> updateConfiguration(configMap)(Android) -> clearUpdatedConfiguration(): In this example, you end up with the initial configuration set via configureWithFileInAssets(fileName)(Android)
  • configureWithAppId(appId)(Android)/configureWith(appId:)(iOS) or configureWithFileInPath(filePath)(Android)/ configureWith(filePath:)(iOS) or configureWithFileInAssets(fileName)(Android) -> updateConfiguration(configMap)(Android)/ updateConfigurationWith(configDict)(iOS) -> clearUpdatedConfiguration() -> updateConfiguration(configMap)(Android)/ updateConfigurationWith(configDict)(iOS): In this example, the configuration will be the most recently updated configuration and will not have any keys from the first update unless they are included in the most recent update.
  • configureWithAppId(appId)(Android)/configureWith(appId:)(iOS) or configureWithFileInPath(filePath)(Android)/ configureWith(filePath:)(iOS) or configureWithFileInAssets(fileName)(Android) -> setPrivacyStatus(privacyStatus)(Android)/ setPrivacyStatus(_ status:)(iOS) -> clearUpdatedConfiguration(): In this example, the configuration will have the initial MobilePrivacyStatus(Android)/ PrivacyStatus(iOS) set via configureWithAppId(appId)(Android)/configureWith(appId:)(iOS) or configureWithFileInPath(filePath)(Android)/ configureWith(filePath:)(iOS) or configureWithFileInAssets(fileName)(Android).
Android
iOS (AEP 3.x)

Java

Syntax
public static void clearUpdatedConfiguration();
Example
MobileCore.clearUpdatedConfiguration();

Swift

Syntax
static func clearUpdatedConfiguration()
Example
MobileCore.clearUpdatedConfiguration()

Objective-C

Syntax
+ (void) clearUpdatedConfiguration();
Example
[AEPMobileCore clearUpdatedConfiguration];

configureWithAppID

This API causes the SDK to download the configuration for the provided app ID and apply the configuration to the current session.
Android
iOS (AEP 3.x)
iOS (ACP 2.x)
Unity
Xamarin

Java

Syntax
public static void configureWithAppID(final String appId);
Example
MobileCore.configureWithAppId("1423ae38-8385-8963-8693-28375403491d");

Swift

Syntax
static func configureWith(appId: String)
Example
MobileCore.configureWith(appId: "1423ae38-8385-8963-8693-28375403491d")

Objective-C

Syntax
+ (void) configureWithAppId: (NSString* appId);
Example
[AEPMobileCore configureWithAppId: @"1423ae38-8385-8963-8693-28375403491d"];

Swift

Syntax
static func configure(withAppId: String)
Example
ACPCore.configure(withAppId: "1423ae38-8385-8963-8693-28375403491d")

Objective-C

Syntax
+ (void) configureWithAppId: (NSString* __nullable) appid;
Example
[ACPCore configureWithAppId:@"1423ae38-8385-8963-8693-28375403491d"];

C#

Syntax
public static void ConfigureWithAppID(string appId)
Example
ACPCore.ConfigureWithAppID("1423ae38-8385-8963-8693-28375403491d");

C#

Android Syntax
public unsafe static void ConfigureWithAppID (string appId);
iOS Syntax
public static void ConfigureWithAppID (string appid);
Example
ACPCore.ConfigureWithAppID("1423ae38-8385-8963-8693-28375403491d");

configureWithFileInAssets

This API is only available in Android and was added in Android was added in Android Core version 1.7.0.
You can bundle a JSON configuration file in the app's Assets folder to replace or complement the configuration that was downloaded by using the Configure with App ID per environment approach.
Android

Java

Syntax
public static void configureWithFileInAssets(final String fileName);
Example
MobileCore.configureWithFileInAssets("exampleJSONfile.json");

configureWithFileInPath

You can include a bundled JSON configuration file in your app package to replace or complement the configuration that was downloaded by using the Configure with App ID per environment approach.
To pass in a bundled path and file name:
Android
iOS (AEP 3.x)
iOS (ACP 2.x)
Xamarin

Java

Syntax
public static void configureWithFileInPath(final String filePath);
Example
MobileCore.configureWithFileInPath("absolute/path/to/exampleJSONfile.json");

Swift

Syntax
static func configureWith(filePath: String)
Example
let filePath = Bundle.main.path(forResource: "ExampleJSONFile", ofType: "json")
MobileCore.configureWith(filePath: filePath)

Objective-C

Syntax
+ (void) configureWithFileInPath: (NSString* __nullable) filepath;
Example
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"ExampleJSONFile" ofType:@"json"];
[AEPMobileCore configureWithFilePath:filePath];

Swift

Syntax
static func configureWithFile(inPath: String)
Example
let filePath = Bundle.main.path(forResource: "ExampleJSONFile", ofType: "json")
ACPCore.configureWithFile(inPath: filePath)

Objective-C

Syntax
+ (void) configureWithFileInPath: (NSString* __nullable) filepath;
Example
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"ExampleJSONFile"ofType:@"json"];
[ACPCore configureWithFileInPath:filePath];

C#

Android Syntax
public unsafe static void ConfigureWithFileInPath (string filepath);
iOS Syntax
public static void ConfigureWithFileInPath (string filepath);
Example
ACPCore.ConfigureWithFileInPath("absolute/path/to/exampleJSONfile.json");

extensionVersion

The extensionVersion() API returns the version of the Configuration extension.
To get the version of the Configuration extension, use the following code sample:
Android
iOS (AEP 3.x)
iOS (ACP 2.x)
React Native
Flutter
Cordova
Unity
Xamarin
Java
String coreExtensionVersion = MobileCore.extensionVersion();
Swift
let version = MobileCore.extensionVersion
Objective C
NSString *version = [AEPMobileCore extensionVersion];
Objective C
NSString *coreExtensionVersion = [ACPCore extensionVersion];
Swift
let coreExtensionVersion = ACPCore.extensionVersion()

JavaScript

ACPCore.extensionVersion().then(coreExtensionVersion => console.log("AdobeExperienceSDK: ACPCore version: " + coreExtensionVersion));

Dart

String coreExtensionVersion = await FlutterACPCore.extensionVersion;

Cordova

ACPCore.extensionVersion(function(version) {
console.log("ACPCore version: " + version);
}, function(error) {
console.log(error);
});

C#

string coreExtensionVersion = ACPCore.ExtensionVersion();

C#

string coreExtensionVersion = ACPCore.ExtensionVersion();

updateConfiguration

You can also update the configuration programmatically by passing configuration keys and values to override the existing configuration.
Keys that are not found on the current configuration are added when this method is followed. Null values are allowed and replace existing configuration values.
Do not use this API to update the build.environment key or any key with an environment prefix, because it can lead to unexpected behaviors. For more information, read Environment-aware configuration properties.
Android
iOS (AEP 3.x)
iOS (ACP 2.x)
React Native
Flutter
Cordova
Unity
Xamarin

Java

Syntax
public static void updateConfiguration(final Map configMap);
Example
HashMap<String, Object> data = new HashMap<String, Object>();
data.put("global.privacy", "optedout");
MobileCore.updateConfiguration(data);

Swift

Syntax
@objc(updateConfiguration:)
static func updateConfigurationWith(configDict: [String: Any])
Example
let updatedConfig = ["global.privacy":"optedout"]
MobileCore.updateConfigurationWith(configDict: updatedConfig)

Objective-C

Syntax
+ (void) updateConfiguration: (NSDictionary* __nullable) config;
Example
NSDictionary *updatedConfig = @{@"global.privacy":@"optedout"};
[AEPMobileCore updateConfiguration:updatedConfig];

Swift

Syntax
static func updateConfiguration(_: [String: Any])
Example
let updatedConfig = ["global.privacy":"optedout"]
ACPCore.updateConfiguration(updatedConfig)

Objective-C

Syntax
+ (void) updateConfiguration: (NSDictionary* __nullable) config;
Example
NSDictionary *updatedConfig = @{@"global.privacy":@"optedout"};
[ACPCore updateConfiguration:updatedConfig];

JavaScript

Syntax
updateConfiguration(configMap?: { string: any })
Example
ACPCore.updateConfiguration({"global.privacy":"optedout"});

Dart

Syntax
static Future<void> updateConfiguration(Map<String, Object> configMap);
Example
FlutterACPCore.updateConfiguration({"global.privacy":"optedout"});

Javascript

ACPCore.updateConfiguration({"newConfigKey":"newConfigValue"}, successCallback, errorCallback);

C#

Syntax
public static void UpdateConfiguration(Dictionary<string, object> config);
Example
var dict = new Dictionary<string, object>();
dict.Add("newConfigKey", "newConfigValue");
ACPCore.UpdateConfiguration(dict);

C#

Syntax
void UpdateConfiguration([NullAllowed] NSDictionary config);
iOS Example
var config = new NSMutableDictionary<NSString, NSObject>
{
["newConfigKey"] = new NSString("newConfigValue")
};
ACPCore.UpdateConfiguration(config);
Android Example
var config = new Dictionary<string, Java.Lang.Object>();
config.Add("newConfigKey", "newConfigValue");
ACPCore.UpdateConfiguration(config);