Search code examples
androidkotlinvisual-studio-app-center

AppCenter is opening install URL in the production build I am making


We have configured an app-center distribution for our internal testing team. Everything works fine there. Now when I am trying to take a production build. When the production is launching the chrome automatically gets opened with http://install.appcenter.ms url in it and it opens the app from the call back.

Interesting thing is this is not happening in dev environment.

How can I remove the URL popping up in the production and still use the appcenter crash reporting in production.

I am attaching my build.gradle

signingConfigs {
    release {
        keyAlias '#######'
        keyPassword '#######'
        storeFile file('../keystores/#######.keystore')
        storePassword '#######'
    }

    appcenter {
        keyAlias '#######'
        keyPassword System.getenv("APPCENTER_JKS_KEY_PASSWORD")
        storeFile file('../keystores/#######.jks')
        storePassword System.getenv("APPCENTER_JKS_STORE_PASSWORD")
    }
}
def STRING = "String"
def BOOLEAN = "Boolean"
def API_URL = "BASE_URL"
def #####_PROD_API = '"http://"'
def #####_DEV_API = '"http://"'
def ANALYTICS_TAG_NAME = "ANALYTICS_TAG_NAME"
def TAG_PROD = '"prod"'
def TAG_DEV = '"dev"'
def APP_CENTER_SECRET = "APP_CENTER_SECRET"

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
        buildConfigField STRING, API_URL, #####_PROD_API
        buildConfigField STRING, ANALYTICS_TAG_NAME, TAG_PROD
        buildConfigField STRING, APP_CENTER_SECRET, '"#######"'
    }
    debug {
        applicationIdSuffix '.dev'
        debuggable true
        buildConfigField STRING, API_URL, #####_DEV_API
        buildConfigField STRING, ANALYTICS_TAG_NAME, TAG_DEV
        buildConfigField STRING, APP_CENTER_SECRET, '"#######"'
    }
    staging {
        matchingFallbacks = ['debug', 'release']
        applicationIdSuffix '.qa'
        debuggable true
        signingConfig signingConfigs.debug
        buildConfigField STRING, API_URL, #####_DEV_API
        buildConfigField STRING, ANALYTICS_TAG_NAME, TAG_DEV
        buildConfigField STRING, APP_CENTER_SECRET, '"#######"'
    }
    mock {
        matchingFallbacks = ['debug', 'release']
        applicationIdSuffix '.mock'
        debuggable true
        signingConfig signingConfigs.debug
        buildConfigField STRING, API_URL, #####_DEV_API
        buildConfigField STRING, ANALYTICS_TAG_NAME, TAG_DEV
        buildConfigField STRING, APP_CENTER_SECRET, '""'
    }
}

These are the dependancies for app-center

/*App Center*/
def appCenterSdkVersion = '1.3.0'
implementation "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}"
implementation "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}"
implementation "com.microsoft.appcenter:appcenter-distribute:${appCenterSdkVersion}"

Any help is appreciated.


Solution

  • In app updates are designed to work on release and not in debug build types since developers are distributing releases in app center and usually not debug builds. We do not want browser to open while you are making changes to the app and testing something else or debugging. That's why the browser opens only in release build types (or more accurately applications with debuggable flag being false).

    Please note that store is detected and the url will not be opened if the app is installed from any valid system app store such as Google Play or Amazon Store.

    More information can be found in the documentation.