将 Flavors 添加到已发布 App 的新版本中

Add Flavors to the new version of published App

是否可以在已发布的应用程序的新版本中添加风味? 如果是,假设有以下情况: 我在 Play 商店中有一个已发布的应用程序(例如 com.example.android)。在新版本的应用程序中,我添加了(例如 freepaid)风味。此添加将应用程序的包名称更改为 com.example.android.freecom.example.android.paid。 假设我只发布 com.example.android.free 风格。 Play 商店的 link 会是什么样子?

https://play.google.com/store/apps/details?id=com.android.example(因为它已经是) 否则它将重命名为 https://play.google.com/store/apps/details?id=com.android.example.free

您不能更改已发布应用程序的包名称,但是您可以有两种风格 free/paid,但其中一种应具有原始包名称: 例如

free = com.example.android
paid = com.example.android.paid

这意味着免费应用程序将更新当前现有的应用程序,而付费应用程序将是 Google Play 上的新应用程序(统计数据和下载量为零)。

这 2 个应用程序的链接符合预期: https://play.google.com/store/apps/details?id=com.android.examplehttps://play.google.com/store/apps/details?id=com.android.example.paid

如果您想两全其美,请查看 [in-app-billing][1] 以允许您的用户免费下载应用程序,并在应用程序内付费以解锁高级功能。

为了清楚 marmor 的回答:

您可以在发布应用程序后创建风格。但是,如果您希望在 Play 商店中发布和更新该应用程序,则该应用程序必须具有原始包名称,这意味着它必须是创建的风格之一并且其包名称保持不变。

举个例子,假设您有一个已发布的应用程序,然后您决定想要它的免费版和专业版。您将 build.gradle 文件更改为具有两种风格:

defaultConfig {
    applicationId "com.mycompany.awesomeapp"
    minSdkVersion 21
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
}
flavorDimensions "feature"
productFlavors {
    free{

    }
    pro{
        applicationIdSuffix ".pro"
    }
}

现在这意味着商店中的原始应用现在是免费产品风味,您可以对其进行签名并将其更新到 Play 商店。您甚至可以更改其名称。重要的是它的包名称保持不变,在这种情况下

com.mycompany.awesomeapp

这是默认定义的并且唯一标识您的应用程序。

PRO 版本是一个不同的应用程序,现在您可以作为新应用程序发布和更新。它的包名现在是

com.mycompany.awesomeapp.pro

这意味着它是一个全新的、不同的应用程序,尽管它共享一些代码库。