Flutter,如何在同一设备上发布和调试应用程序?

Val*_*nal 9 android dart flutter

我正在使用 flutter 开发一个应用程序(目前仅限 Android),该应用程序可以从 Google Play 下载。我已在手机上安装了发布的应用程序。但是,每当我使用 android studio 在设备上启动调试时,它都会删除已发布的版本。我想要的是同时拥有两个应用程序,例如我的设备上的“App”“App_debug”

如何设置我的项目,以便调试和发布应用程序之间不存在冲突?

谢谢。

Val*_*nal 11

我设法找到了一个解决方案(仅适用于Android)。

为了不删除从 Google Play 下载的“已发布的应用程序”,我在文件中添加了以下几行android/app/build.gradle

android {
    buildTypes {
        // ------ Start Changes -----
        debug {
            applicationIdSuffix ".debug"
        }
        // ----- End Changes -----
    }
}
Run Code Online (Sandbox Code Playgroud)

这样,该包将用于com.example.app发布应用程序和com.example.app.debug我的调试应用程序,并且不再存在冲突。


不过,我还想要一个不同的应用程序名称,这样我就可以区分这两个应用程序。为此,我遵循了以下评论

在文件中android/app/src/main/AndroidManifest.xml我做了这样的更改:

android {
    buildTypes {
        // ------ Start Changes -----
        debug {
            applicationIdSuffix ".debug"
        }
        // ----- End Changes -----
    }
}
Run Code Online (Sandbox Code Playgroud)

然后要设置发布应用程序的名称,创建或修改文件android/app/src/main/res/values/string.xml

<manifest ...>
    <application
        // before : android:label="App"
        android:label="@string/app_name"    // <- After my changes
    >
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

对于调试版本,创建或修改文件android/app/src/debug/res/values/string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">App</string>
</resources>
Run Code Online (Sandbox Code Playgroud)