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

标签 android flutter dart

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

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

谢谢你。

最佳答案

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

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

android {
    buildTypes {
        // ------ Start Changes -----
        debug {
            applicationIdSuffix ".debug"
        }
        // ----- End Changes -----
    }
}

这样,包将是 com.example.app对于发布应用程序和 com.example.app.debug对于我的调试应用程序,不再有冲突。

但是,我也想要一个不同的应用程序名称,这样我就可以区分这两个应用程序。
为此,我关注了 this comment :

在文件android/app/src/main/AndroidManifest.xml我做了这个改变:

<manifest ...>
    <application
        // before : android:label="App"
        android:label="@string/app_name"    // <- After my changes
    >
    </application>
</manifest>

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

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">App</string>
</resources>

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

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">App Debug</string>
</resources>

关于android - Flutter,如何在同一设备上发布和调试应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62125323/

相关文章:

flutter - 如何将元素添加到现有 map Firestore

android - 带有支持库的 FloatingActionButton 示例

android - 谷歌地图包含Android上的位置

flutter - 在 Flutter 中将 Json 解析为对象列表的正确方法

dart - 断言失败 : Boolean expression must not be null

dart - Dart 中链接的 href 属性 : "#" or "javascript: void(0);"?

java - getSerializable 根据应用程序的退出方式返回不同的类型

android - 无法从 Play 商店安装更新的应用程序

flutter - 如何使用 maxLength 将文本字段和计数器放在同一行?

firebase - 在1m 9s内构建失败,并完成以下错误:Gradle任务assembleDebug失败,退出代码为1