This technical article is for our non-Build customer only. The purpose is to clearly define the impact of your release configuration mode so that you make sure you are releasing an application that will collect your customers data as expected and not remain in a debug configuration !
Make sure the SDK is in release mode before publication.
Always ensure that you are not publishing an application in debug mode, as the data collected will not be considered as production data, and therefore not appear on the dashboards
The FollowAnalytics SDK has 2 compilation modes, matching the
release modes defined by Apple (iOS, and the build types in the Gradle build system (Android).
The SDK configuration your app runs in has an impact on where your data is sent.
Debug SDK configuration:
default mode when running on the iOS simulator
should be used when doing development and conducting tests on code
data sent in this mode will not be taken into account for stats on the FollowAnalytics dashboards.
You won't be able to receive push notifications from FollowAnalytics in debug mode.
Release SDK configuration:
default mode when running in release mode on a device
data sent in this mode will be considered as production data and affect all dashboards and KPIs computed for the apps.
Debug mode on iOS
In Objective-C, the FollowAnalytics iOS SDK relies on the
FADEBUG constant, which looks at the
DEBUG compilation flag, that is present in all projects created through Xcode (available only in Objective-C).
If you use the Swift language, you set the debug mode yourself. See initialize the SDK.
Debug mode on Android
Your data is sent in debug mode when your app is debuggable. This happens if:
Your app is signed with a debug certificate.
or The flag
android:debuggable="true"is added to your application manifest. This is automatically set to
trueby your IDE if you use a debug certificate.
By default on gradle, the commands
installDebug build the application in debug mode. Android Studio signs your app in debug mode automatically when you run or debug your project from the IDE.
An APK built by commands
installRelease is by default in release mode. The release app is technically ready to be deployed on the store.
Checking if your APK is debuggable
You may be using other build types than debug and release, e.g. dev and prod. You can check whether your APK is debuggable or not using the following snippet code:
ApplicationInfo appInfo = ...;
boolean isDebuggable = appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE != 0;
your environment is debug
your environment is release