将 Flavors 添加到已发布 App 的新版本中
Add Flavors to the new version of published App
是否可以在已发布的应用程序的新版本中添加风味?
如果是,假设有以下情况:
我在 Play 商店中有一个已发布的应用程序(例如 com.example.android
)。在新版本的应用程序中,我添加了(例如 free
和 paid
)风味。此添加将应用程序的包名称更改为 com.example.android.free
和 com.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.example
和
https://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
这意味着它是一个全新的、不同的应用程序,尽管它共享一些代码库。
是否可以在已发布的应用程序的新版本中添加风味?
如果是,假设有以下情况:
我在 Play 商店中有一个已发布的应用程序(例如 com.example.android
)。在新版本的应用程序中,我添加了(例如 free
和 paid
)风味。此添加将应用程序的包名称更改为 com.example.android.free
和 com.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.example 和 https://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
这意味着它是一个全新的、不同的应用程序,尽管它共享一些代码库。