iOS SDK Config File - Flutter Plugin

ENGAGE® iOS SDK Config File

The engage-config.json file provides configuration points for network requests to the ENGAGE platform. It is required by the host app and should be added to bundle via the main app target in Xcode.

During pre-integration, First Orion will provide a engage-config.json file, similar to this one:

{
  "debug": {
    "engageApiKey": "com.your.bundle.id",
    "engagePushConfig": "foios-enterprise-dev",
    "engageEndpoint": "new-test-api.fo-engage.com"
  },
  "test": {
    "engageApiKey": "com.your.bundle.id",
    "engagePushConfig": "foios-enterprise",
    "engageEndpoint": "new-test-api.fo-engage.com"
  },
  "production": {
    "engageApiKey": "com.your.bundle.id",
    "engagePushConfig": "foios-enterprise",
    "engageEndpoint": "api.calleryd.com"
  },
  "appIsVoipEnabled": false,
  "engageChallengeType": "sms",
  "configVersion": "0.1"
}

Add the engage-config.json file in flutter_app --> ios --> Runner --> Runner --> engage-config.json using Xcode.


Fields to highlight in the JSON file:

FieldTypeDescription
engageApiKeyStringMust match iOS application's Bundle Identifier - configured in Xcode
engageEndpointStringENGAGE platform endpoint - this will typically never change
engagePushConfigStringENGAGE platform APNS config. -dev suffix indicates APNS Sandbox will be used
engageChallengeTypeStringThe challenge type will determine the initial ENGAGE registration process
appIsVoipEnabledBooleanThis is a legacy field and should always be set to false

The three sub-objects, referred to as the EngageEnvironment values (debug, test, and production), are selected by the SDK configuration API method Engage.instance.configureSDK (for environment: EngageEnvironment, ...). This allows the host app to support up to three different configurations, but typically only two are used: one for testing and one for production.

The host app determines which EngageEnvironment is used, based on the value set in the Engage.instance.configureSDK(...) method.

instance.configureSDK(EngageEnvironment.debug, "group.your-app-group-id");