Integrate the SDK APIs for the Automatic Configuration Update
  • 18 Oct 2024
  • 1 Minute to read
  • Dark
    Light

Integrate the SDK APIs for the Automatic Configuration Update

  • Dark
    Light

Article summary

AndroidiOS

Android

First, add the ShieldSDK-config Maven dependency to your Android project. This can be found in the SDK/maven/ directory of the App Shielding package.

You can then use the ShieldConfig class with the following methods:

Methods for ShieldConfig class

Method

Description

requestUpdate()

Triggers App Shielding to download a configuration update.

setUpdateCustomId(token)

Sets the X-update-custom-id header for configuration requests. The provided NSData is stored and used for any future request to the server.

setUpdateCallbacks(callback)

Registers a listener that is invoked whenever the app downloads a configuration update. The callback receives a time stamp value that reflects the embedded time stamp from the downloaded configuration.

The following example demonstrates how these methods can be used:

ShieldConfig.requestUpdate();
ShieldConfig.setUpdateCustomId("my-token".getBytes(StandardCharsets.UTF_8));

ShieldConfig.setUpdateCallbacks(new UpdateCallbacks() {
  @Override
  public void configUpdateReceived(String timestamp) {
    // handle callback logic
    ...
  }
});

Always call these methods from a background thread as the app's main thread is reserved for updates of the user interface, as specified by Android.

aBackgroundThread {
  ShieldConfig.requestUpdate();  
  ShieldConfig.setUpdateCallbacks();  
  ShieldConfig.setUpdateCustomId();
 }

You should be aware that the downloaded new configuration is not applied immediately, but only after an application is restarted.

iOS

First, add the ShieldSDK.xcframework bundle from the App Shielding package to your iOS project.

You can then use the ShieldConfig class with the following methods:

Methods for ShieldConfig class

Method

Description

requestUpdate

Triggers App Shielding to download a configuration update.

setUpdateCustomId:

Sets the X-update-custom-id header for configuration requests. The provided NSData is stored and used for any future request to the server.

setUpdateCallbacks:

Registers a listener that is invoked whenever the app downloads a configuration update. The callback receives a time stamp value that reflects the embedded time stamp from the downloaded configuration.

The following example demonstrates how these methods can be used:

[ShieldConfig requestUpdate];
[ShieldConfig setUpdateCustomId:[NSData dataWithBytes:"my-token" length:8]];

For callbacks, you can start with the ConfigUpdateCallbacks interface.

Objective-C example

@interface ConfigUpdateCallbacks : NSObject <ShieldConfigUpdateCallbacks>
@end

@implementation ConfigUpdateCallbacks
- (void)configUpdateReceived:(NSString *)timestamp
{

  // handle callback logic
  ...
}
@end

During the app initialization (e.g., in didFinishLaunchingWithOptions), call the setUpdateCallbacks method in the following manner:

[ShieldConfig setUpdateCallbacks:[[ConfigUpdateCallbacks alloc] init]];

Swift example

If you are using Swift instead of Objective-C, you can set up the callback as follows:

class ConfigUpdateCallbacks: NSObject, ShieldConfigUpdateCallbacks {
  func configUpdateReceived(_ timestamp: String) {
    // handle callback logic
    ...
  }
}
...
ShieldConfig.setUpdateCallbacks(ConfigUpdateCallbacks())

You should be aware that the downloaded new configuration is not applied immediately, but only after an application is restarted.

You should be aware that the downloaded new configuration is not applied immediately, but only after an application is restarted.


Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.
ESC

Ozzy, our interactive help assistant