Configuration API reference

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)

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

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

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

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

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

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

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

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

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

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

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");

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

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

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

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

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

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

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

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

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");

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()

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

String coreExtensionVersion = await FlutterACPCore.extensionVersion;

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

string coreExtensionVersion = ACPCore.ExtensionVersion();

string coreExtensionVersion = ACPCore.ExtensionVersion();

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

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);

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

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

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

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

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

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

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

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

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);
Export as PDF
Copy link
Edit on GitHub
On this page
clearUpdatedConfiguration
configureWithAppID
configureWithFileInAssets
configureWithFileInPath
extensionVersion
updateConfiguration