android - Alpha 版和 Beta 版的 Firebase 崩溃报告

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

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

  • 1个火力基地项目:
  • 4 个 Firebase 安卓应用:
  • 1 包名称为 com.myapp.appname.alpha
  • 1 包名称为 com.myapp.appname.beta
  • 1 包名称为 com.myapp.appname
  • 1 包名称为 com.myapp.appname.dev

  • 我已经这样做了,所以发布和开发崩溃报告是分开的。
    我想,我对 alpha 和 beta 做同样的事情。但显然我不能上传带有不同包名的 alpha & beta & release 这些是我的构建类型。
    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'
        }
    }
    

    在我看到这不起作用之后,我尝试改变一些东西来识别不同的构建类型。 (这个字符串包名仅供引用)(仍然没有解决我的问题)
    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'
        }
    }
    

    所以我的问题是如何在另一个 Firebase Android 应用程序中接收 alpha 和 beta 构建类型的崩溃报告?

    我的解决方案 ATM

    在@Doug Stevenson 给我的信息之后。我想出了一种方法来处理 alpha、beta、release 和 dev build。

    1 个 Firebase 项目,用于:
  • 1 Android for Release、Beta、Alpha

  • 1 个 Firebase 项目,用于:
  • 开发 Android 应用程序

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

    1号:
    我给了每个产品 flavor 另一个版本后缀。和一个额外的字符串 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'
        }
    }
    

    2号:
    我为开发应用程序添加了一个 applicationIdSuffix(见上文)。这样我可以创建另一个具有唯一包名的 firebase 项目。所以我的开发数据和产品数据是分开的。

    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)));
        }
    }
    

    最佳答案

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

    关于android - Alpha 版和 Beta 版的 Firebase 崩溃报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41440031/

    相关文章:

    android - 更改 TabLayout 中选项卡的选择颜色

    android - 溢出的 UI 布局

    firebase - 当来自 rnfirebase 的 firestore 包时,数据未存储在 Firestore 中

    swift - 如何在自定义类中使用 Firebase?

    java - 如何将图标添加到 Android Studio 的抽屉导航模板?

    Android CalendarProvider 事件颜色

    firebase - 坚持为我的Firebase数据库设计架构

    手机关机时 Android 应用程序从 LG Allys 中删除

    google-play - 播放商店: Can't install app, (Error code: -103)

    android - Galaxy s3-不同版本,一个运行正常,另一台设备不受支持