针对alpha& amp;的Firebase崩溃报告公测

时间:2017-01-03 09:15:41

标签: android firebase google-play firebase-crash-reporting android-build-type

我正在完成我的第一个Android应用程序,但我想从一个Alpha& Playstore中的Beta测试。这就是我的firebase设置

的方法
  • 1 Firebase项目:
    • 4 Firebase Android应用:
      • 1,包名为com.myapp.appname.alpha
      • 1,包名为com.myapp.appname.beta
      • 1,包名为com.myapp.appname
      • 1,包名为com.myapp.appname.dev

我这样做了所以发布& dev崩溃报告是分开的。 我想,我为alpha和amp做了同样的事情。公测。但显然我无法上传alpha& beta&使用不同的包名称发布这些是我的构建类型。

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    debug {
        versionNameSuffix '-DEV'
        applicationIdSuffix ".dev"
    }

    beta {
        applicationIdSuffix ".beta"
        versionNameSuffix '-BETA'
    }

    alpha {
        applicationIdSuffix ".alpha"
        versionNameSuffix '-ALPHA'
    }
}

在我看到这不起作用后,我试图改变一些东西来识别这样的不同构造。 (此字符串packagename仅供参考)(仍无法解决我的问题)

buildTypes {
    release {
        resValue 'string', 'packagename', 'com.myapp.appname'
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    debug {
        resValue 'string', 'packagename', 'com.myapp.appname.dev'
        versionNameSuffix '-DEV'
        applicationIdSuffix ".dev"
    }

    beta {
        resValue 'string', 'packagename', 'com.myapp.appname.beta'
        versionNameSuffix '-BETA'
    }

    alpha {
        resValue 'string', 'packagename', 'com.myapp.appname.alpha'
        versionNameSuffix '-ALPHA'
    }
}

所以我的问题是如何才能收到alpha& amp;的崩溃报告?另一个firebase Android应用中的beta buildtype?

我的解决方案ATM

在@Doug史蒂文森给我的信息之后。我想办法如何处理alpha,beta,release和dev build。

1个Firebase项目:

  • 1 Android for Release,Beta,Alpha

1个Firebase项目:

  • 开发Android应用

现在,我仍然会在1报告中获得alpha,beta版本的所有崩溃,因为playstore不支持多个包名,而firebase不支持任何其他注册应用的方式。所以我做了两件事来确定崩溃版本的版本。

否1: 我给每个productflavor另一个版本后缀。还有一个额外的字符串app_version

defaultConfig {
    applicationId "com.myapp.appname"
}

buildTypes {
    release {
        resValue 'string', 'app_version', 'prod'
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        resValue 'string', 'app_version', 'dev'
        versionNameSuffix '-DEV'
        applicationIdSuffix ".dev"
    }

    beta {
        resValue 'string', 'app_version', 'beta'
        versionNameSuffix '-BETA'
    }

    alpha {
        resValue 'string', 'app_version', 'alpha'
        versionNameSuffix '-ALPHA'
    }
}

No 2: 我为dev应用程序添加了applicationIdSuffix(参见上文)。这样我就可以使用唯一的包名创建另一个firebase项目。所以我的开发数据& prod数据是分开的。

否3: 我在应用程序上编写了我的应用程序,以便在应用程序启动时初始化日志,因此如果发生了某些事情,这是我在firebase崩溃报告logcat中看到的最后一个日志。

public class MidiMacro extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        FirebaseCrash.log(String.format("%S      ----->      Android Version", getString(R.string.app_version)));
    }
}

1 个答案:

答案 0 :(得分:0)

Firebase团队一直建议在不同环境(dev,alpha,beta,prod等)中使用相同的应用程序,最好通过为每个应用程序创建一个不同的项目。这使他们彼此完全隔离,所以如果你在开发中搞砸了什么,它不会影响你的prod用户。请阅读my blog post about this进行完整讨论。