明智地上传Playstore免费和付费应用程序国家

时间:2019-04-17 07:58:42

标签: android build apk release android-applicationinfo

您可以在印度免费发布相同的 APK 文件吗?在其他一些国家/地区则可以付费吗?

如果是,那么如何?

我已经搜索,发现对于相似的情况,我们需要释放两个不同的apk。

1 个答案:

答案 0 :(得分:2)

您可以采用多种方法,但是由于Google Play商店的工作方式,我认为您无法同时使用这两种APK。我相信应用内购买是将同一APK分配到不同地区(免费和付费)的最接近的方式。这意味着您将需要确定自己的用户何时应该为您的应用付费……这就是挑战所在……了解您的用户来自哪个国家/地区。

我将采用的方法涉及通过创建两个产品口味(免费,付费)来轻松创建2个APK。 同样,使用这种方法,您将得到两个APK ,但是据我所知,这是实现分发目标的最有效方法。

我认为这种方法更有效的原因是因为您无需在代码中添加很多评估即可确定设备国家/地区。实际上,无论使用哪种方法确定设备(或用户)所在的国家/地区,您几乎永远都无法对这些信息做很多事情。 GPS位置不是一个很好的指标(用户可能是西班牙的印度游客或印度的西班牙游客),没有SIM卡的电话或平板电脑的电话服务也会失败。因此,我将答案集中在两种产品口味上,并生成两个APK。

要创建这两种产品风味,您需要在gradle中对其进行声明...

android {
    flavorDimensions "version"

    productFlavors {
        free {
            dimension "version"
            applicationIdSuffix ".free"
            versionNameSuffix "-free" 
        }

        paid {
            dimension "version"
            applicationIdSuffix ".paid"
            versionNameSuffix "-paid" 
        }
    }
}

上面的声明只是告诉Android Studio该应用程序使用两种产品样式(免费和付费),并且applicationId(和版本名称)将带有样式名称后缀。 这是必要的,因为您将生成两个APK。

要注意的一件事是,所有产品口味将“继承” defaultConfig部分中定义的设置,因此您应在defaultConfig中定义所有常用配置

现在,当您同步项目时,Android Studio将根据这些产品口味创建构建变体。这是我其中一个不使用产品调味料的项目的示例...

enter image description here

这只是使用常见的调试/发布构建类型,但是如果我已经配置了上述产品风味,那么您将在此处看到4个构建变体:

  • freeDebug
  • freeRelease
  • paidDebug
  • paidRelease

现在,当您切换构建版本时,您可以提供不同的类实现,不同的资源等。最重要的是,在构建(或打包)应用时,您将为每个构建版本生成不同的APK。

因此,您最终将获得免费发行的APK和付费发行的APK,可以在Google Play中清晰地分发它们。看起来您有两个不同的应用程序,但事实是(在开发方面)几乎是使用Product Flavors开发的同一应用程序,并且生成这两个应用程序的工作量最少!!

牢记以上所有内容,您可以看到“非常容易”:

  1. 仅向一种口味/品种(付费)添加订阅或应用内购买
  2. 向印度分发免费的一本
  3. 将付款分发到世界其他地方

现在,我真的不知道是否有一种简单的方法可以达到最后一个目标(3)...在Google Play中向除一个国家(印度)以外的所有国家/地区分发内容。必须一次选择一个国家,这可能是一项艰巨的任务